Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
NEvOl
19 / 18 / 1
Регистрация: 13.08.2012
Сообщений: 734
1

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

10.11.2012, 20:44. Просмотров 344. Ответов 5
Метки нет (Все метки)

Подскажите новичку пожалуйста в чём проблема ? вылетает ошибка на 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);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 20:44
Ответы с готовыми решениями:

Создать динамический массив, собирающий значения переменной на каждой итерации цикла
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt;...

Динамический массив: ошибка в конструкторе
Приветствую! Слушаю лекцию ТЕХНОПАРК, и там рассказывается про динамический...

Непонятная ошибка(классы и двумерный динамический массив)
Всем привет. Сегодня писал программу для двумерного динамического массива....

Ошибка при добавлении элемента в динамический массив
Всем привет! Создал класс для работы с дин.массивом. Нормально компилируется и...

Динамический массив. Ошибка при выполнении программы
Программа должна предоставить заполнение массива пользователю, а дальше вывести...

5
ValeryS
Модератор
7264 / 5518 / 692
Регистрация: 14.02.2011
Сообщений: 18,691
10.11.2012, 20:53 2
Цитата Сообщение от NEvOl Посмотреть сообщение
float **answers = new float*[1];
это глобальная

Цитата Сообщение от NEvOl Посмотреть сообщение
float **answers = new float*[numstep];
а это локальная
как ты с ними разбираешся????
0
Kuzia domovenok
2327 / 2074 / 482
Регистрация: 25.03.2012
Сообщений: 7,397
Записей в блоге: 1
10.11.2012, 20:56 3
первое, что бросилось в глаза - вместо delete answers; delete answers[0]:
delete[] answers[0]; delete[] answers;

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


а это локальная
как ты с ними разбираешся????
а как тогда нужно указать ? а то что-то несовсем понимаю( нужно что бы оба создавались в цикле ?
0
ValeryS
Модератор
7264 / 5518 / 692
Регистрация: 14.02.2011
Сообщений: 18,691
10.11.2012, 21:11 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];
1
NEvOl
19 / 18 / 1
Регистрация: 13.08.2012
Сообщений: 734
10.11.2012, 21:12  [ТС] 6
спасибо попробую
0
10.11.2012, 21:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2012, 21:12

Динамический массив структур. Ошибка преобразования типов
Всем привет есть задачка на структуры. Нужно через структуру В сделать...

Ошибка при вводе в динамический двумерный массив
заполнить матрицу не могу. ошибка где то от 19 до 24 строки. #include...

Динамический массив указателей(не пойму в чем ошибка в коде)
есть код: При попытки записи данных слетает на инициализации name..не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru