2

文字列の動的配列を含む以下のコードがあります。生成された個々の文字列の割り当てを解除する際に問題があります。それらを解放する新しいforループを含めることができると思いましたが、うまくいきませんでした。これをどのように行う必要がありますか?

//A dynamically allocated array of char pointers
int numOfStrings = 10, numOfChars = 32;
char** data = new char*[numOfStrings];

//Generate each each individual string
for(int i = 0; i <numOfStrings; i++)
    data[i] = new char[numOfChars];

//moves the elements 1-5 in the array to the right by one
int index = 1, boundary = 5, sizeToMove = (boundary - index) * sizeof(numOfChars);
memmove(&data[index + 1],&data[index],sizeToMove);

for(int i=0;i < numOfStrings; i++)
delete [] data[i];   //this line is causing an exception on its first call (I've also tried delete data[i].

delete[] data;
4

1 に答える 1