Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 21:38   #1
Сольвейг
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 17
По умолчанию Очистка памяти массива (С++)

Не получается очистить память массива. По моему коду, по завершении программы выдаётся ошибка "попытка очистки памяти после записи её в буфер", что-то вроде этого.
Подскажите дураку, когда нужно вставлять очитку памяти? мне кажется, проблема в этом.
Код:
#include <stdio.h>
 #include <iostream>
 using namespace std;
 #include <fstream>
 
 void main(void)
 {
 int m, n;
 
 cout << "Vvedi kol-vo strok" << endl;
 cin >> m;
 cout << "Vvedi kol-vo stolbtsov" << endl;
 cin >> n;
 
 int** array_2d;
 int number = 1;
 
 // Создаем массив 
 array_2d = new int*[m];
 
 
 for (int i = 0; i < n; i++)
 {
 array_2d[i] = new int[n];
 }
 
 // Заполняем массив
 for (int i = 0; i < m; i++)
 {
 for (int j = 0; j < n; j++) 
 {
 // Приводим матрицу в шахматный порядок 
 if ((i+j)%2 != 0)
 {
 array_2d[i][j] = 0;
 }
 
 else array_2d[i][j] = number++;

 cout << array_2d[i][j] <<"";
 }

 

 cout << endl;

 fstream file;
 file.open("C:\\out.txt", ios::out);
 for (int i=0; i<m; i++)
	{
			for (int j=0; j<n; j++)
			{
			  file << array_2d[i][j] << " ";
			}
			file << "\n";
		
	}
 		
		file.close();

 }
 
 for (int i = 0; i < m; i++) 
	{
		delete []array_2d[i];
	
		delete []array_2d;
	 }

 return;
 }
Сольвейг вне форума Ответить с цитированием
Старый 11.12.2011, 22:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
delete []array_2d;
ИМХО - за цикл выноси.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2011, 22:27   #3
Сольвейг
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 17
По умолчанию

Он и так за циклом..
А ошибку выдаёт описанную выше.
Сольвейг вне форума Ответить с цитированием
Старый 11.12.2011, 22:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Он и так за циклом..
Да ну???
Цитата:
for (int i = 0; i < m; i++)
{
delete []array_2d[i];

delete []array_2d;
}
Или я чего-то не понимаю?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистка памяти процедурой .FormClose Delphi Человек Панда Помощь студентам 0 24.10.2011 21:08
Очистка памяти в односвязном списке Sigwey Помощь студентам 0 28.12.2010 17:02
Очистка памяти _-Re@l-_ Общие вопросы Delphi 4 22.05.2010 17:08
Очистка памяти Senator Общие вопросы Delphi 1 28.06.2008 19:39
Очистка памяти в C# darkstarx Общие вопросы .NET 1 14.04.2008 14:48