下面的代碼是否包含內存泄漏。我懷疑它確實存在,但我用來檢測它們的工具(Visual Studio + Parasoft C++測試)沒有標記任何東西。如果是我如何解決它?這是否包含內存泄漏?
//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);
delete[] data;
編輯:
我應該提,我都試過遍歷如下每個個體字符串,但發生異常。
for(int i = 0; i< numOfStrings; i++)
delete [] data [i];
@NuclearGhost:不,它不應該。這個問題是關於識別和糾正一段代碼中的特定問題的。代碼審查適用於您有任何代碼需要改進的地方。 –
請勿使用'new';最好使用'std :: vector',或者使用'char's,'std :: string'。 –