Форум программистов, компьютерный форум CyberForum.ru

Динамический массив - ошибка на 4-ой итерации - C++

Восстановить пароль Регистрация
 
NEvOl
12 / 11 / 0
Регистрация: 13.08.2012
Сообщений: 616
10.11.2012, 20:44     Динамический массив - ошибка на 4-ой итерации #1
Подскажите новичку пожалуйста в чём проблема ? вылетает ошибка на 4-ой итерации
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
float **answers = new float*[1];
answers[0] = new float[31];
do
{
   numstep++;
   if (numstep == 1)
   {
      delete answers[0];
   }
   else
   {
      for(int i = 0; i < numstep - 1; i++)
        delete answers[i];
      delete answers;
   }
 
   float **answers = new float*[numstep];
      for(int i = 0; i < numstep; i++)
   answers[i] = new float[31];
 
   for(int i = 0; i < numstep; i++)
      for(int j = 0; j < 31; j++)
   answers[i][j] = 1;
}while(numstep < 10);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 20:44     Динамический массив - ошибка на 4-ой итерации
Посмотрите здесь:

C++ ошибка в вводе в динамический двумерный массив
Программа которая изменяет динамический массив строк - Написал, но есть ошибка C++
Динамический массив структур - ошибка "попытка чтения или записи в защищенную память" C++
Динамический массив и строки и ошибка app4.exe вызвал срабатывание точки останова C++
Динамический массив структур. Ошибка преобразования типов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
10.11.2012, 20:53     Динамический массив - ошибка на 4-ой итерации #2
Цитата Сообщение от NEvOl Посмотреть сообщение
float **answers = new float*[1];
это глобальная

Цитата Сообщение от NEvOl Посмотреть сообщение
float **answers = new float*[numstep];
а это локальная
как ты с ними разбираешся????
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
10.11.2012, 20:56     Динамический массив - ошибка на 4-ой итерации #3
первое, что бросилось в глаза - вместо delete answers; delete answers[0]:
delete[] answers[0]; delete[] answers;

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
это глобальная а это локальная
как ты с ними разбираешся????
Точно! +1
NEvOl
12 / 11 / 0
Регистрация: 13.08.2012
Сообщений: 616
10.11.2012, 21:01  [ТС]     Динамический массив - ошибка на 4-ой итерации #4
Цитата Сообщение от ValeryS Посмотреть сообщение
это глобальная


а это локальная
как ты с ними разбираешся????
а как тогда нужно указать ? а то что-то несовсем понимаю( нужно что бы оба создавались в цикле ?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
10.11.2012, 21:11     Динамический массив - ошибка на 4-ой итерации #5
во первых вот здесь
Цитата Сообщение от NEvOl Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
if (numstep == 1)
 {
 delete answers[0];
 }
 else
 {
 for(int i = 0; i < numstep - 1; i++)
 delete answers[i];
 delete answers;
 }
перепиши
C++
1
2
3
4
5
6
7
8
9
10
if (numstep == 1)
   {
      delete[] answers[0];
   }
   else
   {
      for(int i = 0; i < numstep; i++)
        delete[] answers[i];
    }
     delete[] answers;
у тебя не удаляется блок answers[numstep-1]( до него цикл не доходит)
если numstep == 1 то не удаляется answers
ну и удалять нужно массив как сказал Kuzia domovenok,
я бы написал так

C++
1
2
3
 for(int i = 0; i < numstep; i++)
        delete[] answers[i];
    delete[] answers;
во вторых вместо этого

Цитата Сообщение от NEvOl Посмотреть сообщение
float **answers = new float*[numstep];
напиши
C++
1
 answers = new float*[numstep];
NEvOl
12 / 11 / 0
Регистрация: 13.08.2012
Сообщений: 616
10.11.2012, 21:12  [ТС]     Динамический массив - ошибка на 4-ой итерации #6
спасибо попробую
Yandex
Объявления
10.11.2012, 21:12     Динамический массив - ошибка на 4-ой итерации
Ответ Создать тему
Опции темы

Текущее время: 03:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru