0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 17
1

Ошибка SIGTRAP при удалении динамического 2D массива

29.04.2018, 20:19. Показов 1677. Ответов 3
Метки нет (Все метки)

Нужно было создать двухмерный динамический массив в форме "пирамиды", скажем так, заполнить его определённым образом и вывести на экран. Написал такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
short **triangle=new short*[10];
    for(size_t i=0; i<10; i++)
    {
        triangle[i]=new short[i];
        for(size_t j=0; j<=i; j++)
            printf("%hi ", triangle[i][j]=(i+1)*10+j);
        putchar('\n');
    }
    for(size_t i=0; i<10; i++)
        delete []triangle[i];
    delete []triangle;
Если запустить этот участок кода (он находится в функции) несколько раз, то программа вылетает с ошибкой. При попытке вызвать функцию выдаёт "program received signal SIGTRAP trace/breakpoint trap". Пробовал по разному всё менять и понял, что проблема в строчке 10. Пытался найти ответы в интернете, но толком ничего не понял.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2018, 20:19
Ответы с готовыми решениями:

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

Ошибка при удалении динамического массива
Добрый вечер! Ругается на HEAP CORRUPTION DETECTED в строке с delete vertex; В чём может быть...

Ошибка при удалении динамического массива
Непонятная мне ошибка при удалении массива #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Возникает ошибка при удалении динамического массива символов в деструкторе класса
Всем привет. Есть приватная переменная, указатель на строку wchar_t *pUAgent; В конструкторе...

3
7175 / 6147 / 2805
Регистрация: 14.04.2014
Сообщений: 26,494
29.04.2018, 20:36 2
Условие должно быть строгое в цикле по j. Первая строка у тебя вообще нулевого размера, там нет элементов.
1
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 17
30.04.2018, 11:43  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Условие должно быть строгое в цикле по j. Первая строка у тебя вообще нулевого размера, там нет элементов.
Со строгим условием в цикле по j оно неправильно выводит числа.
А вот по поводу второго спасибо, теперь всё работает нормально.
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
30.04.2018, 18:43 4
Цитата Сообщение от Light-dimf Посмотреть сообщение
Со строгим условием в цикле по j оно неправильно выводит числа.
А ничего, что без строго условия, будет выход за границу выделенной памяти?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2018, 18:43
Помогаю со студенческими работами здесь

Вылет программы при удалении динамического массива
Писал программу с использованием динамического массива, все компилилось нормально, но в какой-то...

Нужно ли при удалении динамического массива присваивать NULL?
Вот создал я динамический массив N на M: int **mas; mas=new int*; for(i=0;i&lt;n;i++) mas=new...

Heap corruption detected при удалении динамического массива
mystring.cpp - здесь происходит ошибка в функции MyString::operator на строке delete s. В чем тут...

ERangeCheckError при удалении элемента из динамического массива
Нужно удалить из массива элемент по его индексу. Как я понял, нужно сдвинуть элементы идущие после...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru