У меня проблема с 2D динамическим массивом. Код находится здесь:Удаление динамического массива 2D не будет работать
//Inicialization
char** arr = new char* [size];
for(int i = 0; i < size; i++)
arr[i] = new char[70];
Общее количество предложений с max 70 символов каждый. Хорошо ... Я использовал это раньше. Тогда я хочу обсудить это - я тоже это сделал!
//Deleting
for(int i = 0; i < size; i++)
delete [] arr[i];
delete [] arr;
И это будет врезаться прямо в г = 0 с: "Выражение: _BLOCK_TYPE_IS_VALID (pHead-> nBlockUse)".
Но, как я сказал, - я использовал его в другом проекте, таким образом:
//Init
char** vety = new char* [pocVet];
for(int i = 0; i < pocVet; i++)
vety[i] = new char[100];
//Something (again a few sentences).
//Deleting
for(int i = 0; i < pocVet; i++)
delete [] vety[i];
delete [] vety;
Я смотрел везде здесь, и это то же самое. Что не так? PS: Во втором примере, где он работает, не возражайте против разных имен (на моем родном языке).
Редактировать: Возможно, это из-за содержимого массива? Но во втором случае (где он работает) есть предложения в нем. Просто у меня куча вопросов в нем, и пользователь только выбрать действие - так поясню это только предложения:
arr[0] = " 1 - Use something\n";
arr[1] = " 2 - Use different thing\n";
arr[2] = " 3 - etc...\n";
arr[3] = " 4 - etc\n";
arr[4] = " 5 - etc\n";
arr[5] = " 6 - etc\n";
arr[6] = " 7 - etc\n";
Я ничего не делаю с ним ... только Е();
Проблема заключается с тем, как использовать новый массив. Потому что [что вы опубликовали работает] (http://ideone.com/L3tg7j) – StoryTeller
вероятность того, что вы топаете на указатели массива где-то между распределением и последующим удалением – Alnitak
Действительно. Я только что запустил ваш исходный код на 2 компиляторах. Нет проблем. ... требуется [mcve]. –