char 배열에서 몇 가지 트릭을 수행하는 몇 가지 기능을 작성해야하는 작업이 할당되었습니다. 그래서 그 함수를 만들었고이 "HEAP CORRUCPTION DETECTED"오류로 인해 제대로 작동하는지 확인하려고했습니다. 여기 C++ : 정상적인 블록 후에 힙 손상이 감지되었습니다.
내 함수의 코드 basicly 'cDizi'의 문자의 지정된 금액을 받고 다른 미리 제작 배열 'cDondur'에 넣어 무엇 내가 여기서 뭘하려고하고void cagir(char cDizi[], short int baslangic, short int karSayisi, char cDondur[])
{
//Yerel Değişken
short int index = 0;
/*Diziyi baslangic değerinden başlayarak, NULL karakterine ulaşılmadığı ve baslangic değeri
baslangic + karSayisi'na eşit ya da küçük olduğu sürece oku */
for (; cDizi[baslangic] != '\0' && baslangic < baslangic + karSayisi; baslangic++)
{
//Okunan karakteri cDöndür dizisine yerleştir
cDondur[index] = cDizi[baslangic];
index += 1; //cDöndür dizisinin index'ini 1 artır
}
}
. 'cDizi'배열은 사용자 입력 배열이고 'cDondur'는 프로그램의 관련 부분에서 만들어진 배열입니다. 배열 'cDondur'의 범위로 호출 할 문자의 수를 지정하고 싶습니다. 여기
내가 내 프로그램에서 함수를 호출하는 부분이며, 만든 'cDondur'배열case '3': //MOD - 3
{
short int indis, karSayisi;
//Çağrılacak parçanın ilk karakterinin indisini öğren
cout << "Almak istediğiniz ilk karakterin indisi : ";
cin >> indis;
//kaç karakterlik parça çağrılacağını öğren
cout << indis << " indisli karakterden itibaren almak istediğiniz karakter sayısı : ";
cin >> karSayisi;
//Sınırı karSayisi olan bir dizi oluştur
char *Dizi = new char[karSayisi];
//Parça çağırma fonksiyonunu çağır
cagir(cDizi, indis, karSayisi, Dizi);
cout << endl;
cout << "İstediğiniz karakterler çağrıldı : ";
//cagir fonksiyonunun sonucu olan 'Dizi' dizisini ekrana yaz
for (int i = 0; i < karSayisi; i++)
cout << Dizi[i];
delete Dizi;
break;
}
karSayisi 여기에 내가 배열 및 elemanSayisi (ARRAY)에서 사러 갈 건데 문자의 양입니다 매개 변수의 문자 양을 반환하는 함수입니다.
이 문제를 빨리 해결할 방법을 찾아야합니다. 코드를 수정하기 위해 3 시간 동안 똑같은 작업을 해왔으나 어쨌든 그렇게 할 수는 없습니다.
우리는 터키어 (또는 무엇이든)를 말하지 않기 때문에, 우리는 '카기르'와 같은 기능을 추측 할 수 없습니다. 예 :의 정의 게시 '카기르 '도. 'Dizi'는 수정 될 수 있습니다. – Columbo
죄송합니다. 나는 그 부분을 추가했다고 생각했는데 즉시 추가 할 것입니다. – LoLeRji
'Dizi' 배열에 대해'delete' 대신에'delete []'를 사용하는 문제가 있을까요? –