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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Исключительные операции, класс и вызовы http://www.cyberforum.ru/cpp-beginners/thread1091103.html
Алгоритм задачи 1. Повторять действия, пока не получено правильного результата 1.1. Увести число и его степень. 1.2. Если число >0, то возвести число в введенную степень. 1.3. Если число <0, то произвести такие действия: 1.3.1. Выделить целую и дробную части степени. 1.3.2. Если дробная часть степени равняется 0 и его целая часть непарная, тогда возвести число в степень и получить...
C++ Организовать добавление данных в файл, просмотр, поиск и очистку данных НАписать программу. Компонентами типизированного файла являются записи, состоящие из следующих полей: - фамилия; - имя; - отчество; - город проживания; - год рождения. Организовать следующие процедуры работы с файлом: - добавление записи в файл; - просмотр файла; - поиск по фамилии, имени и отчеству; - очистка файла. Действия выполняются в произвольном порядке по выбору пользователя. http://www.cyberforum.ru/cpp-beginners/thread1091072.html
Ввести в структуру в виде указателя строку из нескольких слов C++
Нужно сделать структуру с помощью new. Надо чтобы программа запрашивала диаметр пиццы, название компании из нескольких слов и вес. При вводе названия компании первой всё ок, а вот в этом порядке не могу ничего поделать. Перебрал варианты с массивами и строками - в итоге ноль. Максимум чего добиваюсь, так это обрезки названия компании до одного слова. Ниже код, в данном варианте он вообще...
C++ Работа с одномерным массивом (найти наиболее часто встречающееся число)
Дан одномерный массив A, найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
C++ Игра «Пуговицы» http://www.cyberforum.ru/cpp-beginners/thread1091044.html
Игра «Пуговицы» (Время: 0,5 сек. Память: 16 Мб Сложность: 48%) Правила игры очень просты. Перед двумя играющими находится кучка из K пуговиц. Играющие по очереди берут пуговицы из кучки, причем за один ход каждый из них может взять от 1 до L пуговиц. Выигрывает тот из спортсменов, которому удастся взять последнюю пуговицу. Тот из игроков, которому по жребию выпадает делать первый ход,...
C++ "Надзор" за печатной продукцией С намерением приобщиться к сообществу программистов я установил MS Visual Studio 2010 Express, взял книгу Румянцева П. В. "Азбука программирования в Win32 API", открыл её на стр. 10 и ввёл приведенный там текст "Первой программы для Windows" в файл helloworld.cpp моего, ранее созданного пустого проекта. Сделав глубокий вдох, ... я нажал "Компилировать". ... Результат - в 3-х строках... подробнее

Показать сообщение отдельно
Alise.
 Аватар для 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;
 
Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru