c++ - Ошибка в программе С++ после вывода результата


-1

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

Источник
  •  51
  •  2
  • 4 янв 2017 2017-01-04 14:54:07
Пожалуйста, добавьте в вопрос код в нормальном текстовом виде. Смотреть на эти мрачные картинки (а тем более перенабирать код) невозможно!! — 4 янв 20172017-01-04 14:51:04.000000
Вам стоит подавать код в вопросе в текстовом варианте. — 4 янв 20172017-01-04 14:50:28.000000

2 ответа

0

Вы вышли за пределы выделенного размера памяти.

int* Num = new int(s);

Выделяет память размером sizeof(int) и инициализирует ее значением s Выделяя память как new, освобождаете как delete, а при new [] освобождаете как delete[]. Чтобы выделить память под весь массив, необходимо сделать следующее:

int* Num = new int[s]();
  • 4 янв 2017 2017-01-04 14:54:40
спасибо большое — 4 янв 20172017-01-04 14:58:06.000000
1

Ваша ошибка в том, что вы неверно выделили память - не

int*Num = new int[s];

а

int*Num = new int(s);

Т.е. вы выделили в памяти один int со значением s, а пишете в результате за границу выделенной памяти...

  • 4 янв 2017 2017-01-04 14:53:52