Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Alise.
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 17

Ошибка при выделении памяти

07.02.2014, 00:15. Показов 841. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос: из-за чего программа может рушится?
C++
1
2
3
4
5
6
7
int *NRRow = new int [N+1];
    int *NRow = new int [N+1];
    int *NCol = new int [NZ];
         //тут код. всякие преобразования массивов и тд
           delete [] NCol;
delete [] NRRow;
delete [] NRow;
на делитах программа рушится. Закоменчиваю код - работает.
N где-то порядка 50, NZ где-то от 300.
Из-за чего это может быть?))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2014, 00:15
Ответы с готовыми решениями:

Ошибка при выделении памяти
Когда убираю free(buf), то ошибки нету, а когда есть, то вылазит ошибка. Почему такое происходит? #include <stdlib.h> #include...

Ошибка при выделении памяти
Здравствуйте, друзья. Подскажите, пожалуйста, почему выскакивает ошибка при повторном выделении память (ведь память в куче удаляется...

Ошибка при динамическом выделении памяти
почему у меня возникет ошибка вот тут struct TOVAR *New = new struct TOVAR; пишит недопустимый неполный тип на struct подчеркивает...

5
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
07.02.2014, 00:17
Alise., весь код в студию, пожалуйста!
0
 Аватар для Alise.
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 17
07.02.2014, 00:20  [ТС]
вот код)
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
void Graph::from_matrix_to_graph(){
 
    int *NRRow = new int [N+1];
    int *NRow = new int [N+1];
    int *NCol = new int [NZ];
 
    for (int i=0; i<N+1; i++)
    {NRow[i]=0;NRRow[i]=0;}
 
 
    for (int j=0; j<NZ*2-N; j++)
        NCol[j]=-1;
    
    for (int i=0; i<(N+1); i++){
        for (int j=Row[i]+1; j<Row[i+1]; j++){
            NRRow[Col[j]]++;
                }
    }
    
        
    for (int i=1; i<N+1; i++)
        NRRow[i]=NRRow[i-1]+NRRow[i];
    
    for (int i=1; i<N+1; i++)
    {NRow[i]=Row[i]+NRRow[i-1]-i;}
 
    
    
for (int i=0; i<N+1; i++){
    for (int j=Row[i]+1; j<Row[i+1]; j++){
        int k=0;
        int a=0;
        while (k!=-1) { 
            k=NCol[NRow[i]+a];
            a++;
        }
        NCol[NRow[i]+a-1]=Col[j];
        k=0;
        a=0;
        while (k!=-1) { 
            k=NCol[NRow[Col[j]]+a];
            a++;
        }
        NCol[NRow[Col[j]]+a-1]=i;
        k=0;
        a=0;
    }
}
 
for (int i=0; i<NZ*2-2*N; i++)
    Col[i]=NCol[i];
 
    
for (int j=0; j<(N+1); j++)
    Row[j]=NRow[j];
 
delete [] NCol;
 
delete [] NRRow; 
delete [] NRow;
 
 
}
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
07.02.2014, 00:28
Alise., спасибо за урывок кода из класса, я его даже подебажить не могу. :/
0
 Аватар для Alise.
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 17
07.02.2014, 01:00  [ТС]
вот. Это уже можно продебажить, и ошибка все там же.)
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
#include<iostream>
 
void from_matrix_to_graph(int N,int NZ,int *Row, int *Col){
 
    int *NRRow = new int [N+1];
    int *NRow = new int [N+1];
    int *NCol = new int [NZ];
        for (int i=0; i<N+1; i++)
    {NRow[i]=0;NRRow[i]=0;}
 
 
    for (int j=0; j<NZ*2-N; j++)
        NCol[j]=-1;
    
    for (int i=0; i<(N+1); i++){
        for (int j=Row[i]+1; j<Row[i+1]; j++){
            NRRow[Col[j]]++;
                }
    }
    
        
    for (int i=1; i<N+1; i++)
        NRRow[i]=NRRow[i-1]+NRRow[i];
    
    for (int i=1; i<N+1; i++)
    {NRow[i]=Row[i]+NRRow[i-1]-i;}
 
for (int i=0; i<N+1; i++){
    for (int j=Row[i]+1; j<Row[i+1]; j++){
        int k=0;
        int a=0;
        while (k!=-1) { 
            k=NCol[NRow[i]+a];
            a++;
        }
        NCol[NRow[i]+a-1]=Col[j];
        k=0;
        a=0;
        while (k!=-1) { 
            k=NCol[NRow[Col[j]]+a];
            a++;
        }
        NCol[NRow[Col[j]]+a-1]=i;
        k=0;
        a=0;
    }
}
 
for (int i=0; i<NZ*2-2*N; i++)
    Col[i]=NCol[i];
 
    
for (int j=0; j<(N+1); j++)
    Row[j]=NRow[j];
 
delete [] NCol;
 
delete [] NRRow; 
delete [] NRow;
 
 
 
 
}
 
int main(){
 
 
    int a[6]={0,3,6,8,9,10};
    int b[10]={0,1,4,1,3,4,2,3,3,4};
 
    from_matrix_to_graph(5,10,a,b);
 
 
 
 
 
    return 0;
}
Добавлено через 25 минут
Ошибку нашла=) оказывается, ещё при иницализации массива единицами вышла за границы.
C++
1
2
for (int j=0; j<NZ*2-N; j++)
        NCol[j]=-1;
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
07.02.2014, 17:34
Так Вы выделяете NCol[NZ]=NCol[10]. А цикл повторяете j<NZ*2-N, т.е. j<10*2-5 ( j<15) вот и вылет.... может так?
C++
1
2
 for (int j=0; j<NZ*2-2*N; j++)
        NCol[j]=-1;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2014, 17:34
Помогаю со студенческими работами здесь

Ошибка при динамическом выделении памяти
Я не понимаю почему, но почему-то пример по динамическому выделению памяти, взятый с этой веб-страницы: http://cppstudio.com/post/9555/...

Иерархия классов. Ошибка при выделении памяти
Добрый день. Пишу класс Транспортное средство. Столкнулся с несколькими ошибками. Программа запускается. Но при работе выдаётся ошибка...

Ошибка при выделении памяти с помощью malloc
Помогите выдает ошибку в рядочке :&quot;Ar = ( far *)malloc(size*sizeof(int));&quot; полный текст програмы: #include &quot;stdafx.h&quot; using...

Ошибка при выделении памяти под двумерный массив
#include &lt;iostream&gt; using namespace std; class array { int size1, size2; char **matr; public: array(int n1, int n2); ...

Ошибка при выделении памяти динамически для структуры
Есть программа. Вылетает ошибка. Если gets(BLOCKNOTE.NAME) заменить на cin&gt;&gt;BLOCKNOTE.NAME все работает нормально. Хотелось бы ипользовать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru