У меня есть функция, использующая двумерный массив, и я хочу скопировать данные из одного массива в другой, и я использовал массив tmp, но valgrind продолжал говорить, что у меня утечка памяти.Я не могу понять, почему.Следующее является частью функции.
// valgrind gave me error as operator new[] (unsigned long) for the following line
T** temp_pointer = new T*[rows];
for (int i=0; i < rows; i++) {
temp_pointer[i] = new T[columns];
}
for (int i =0; i< rows; i++) {
for (int j =0; j < (columns-3); j++) {
temp_pointer[i][j] = Arry[i][j];
}
temp_pointer[i][columns -3 ] = myvalue1;
temp_pointer[i][columns-2] = myvalue2;
temp_pointer[i][columns-1] = myvalue3;
}
for ( int i =0; i< rows; i++)
delete [] Arry[i];
delete [] Arry;
Arry= temp_pointer;
У меня также есть деструктор, который рекурсивно удаляет указатели Arry.Арри является закрытым членом класса шаблона.
Я просто не мог понять, почему произошла утечка памяти.Я должен рекурсивно удалить temp_pointer ??(Я пытался, и это не сработало) Я просто не знал, где оно протекло?