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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zla9_Kolu4ka
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 408
#1

освобождннии памяти - C++

03.03.2014, 18:54. Просмотров 164. Ответов 5
Метки нет (Все метки)

Почему возникает ошибка при освобожднни памяти delete-ом?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
using namespace std;
    
void main(void){
    int* int_array = new int[1000];
    int i;
    if (int_array != NULL){
        for (i = 0; i < 1000; i++) 
            int_array[i] = i + 1;
        for (i = 0; i < 1000; i++) 
            cout << *int_array++ << ' ';
        delete int_array;
    }
 
    char ch = getchar();
}
если сделать так, то норм
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
using namespace std;
    
void main(void){
    int* int_array = new int[1000];
    int i;
    if (int_array != NULL){
        for (i = 0; i < 1000; i++) 
            int_array[i] = i + 1;
        for (i = 0; i < 1000; i++) 
            cout << int_array[i] << ' ';
        delete int_array;
    }
 
    char ch = getchar();
}
Миниатюры
освобождннии памяти  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2014, 18:54     освобождннии памяти
Посмотрите здесь:

Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти)) - C++
Вот тут появилась такая интересная задача: требуется сделать программу которая управляет 1024 ячейками памяти по 8 байт каждая. т.е. за...

Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти? - C++
Добрый день. Не могу найти информацию по двум вопросам : 1) могу ли я разместить переменную в нужную ячейку памяти. Например: int a...

Перезагружается компьютер после установки памяти + нет настройки памяти в BIOS - Оперативная память
Добрый день! Помогите пожалуйста разобраться в следующей ситуации, после установки оперативной памяти Kingston DDR3-1600 8192MB...

1 Гб не буферизованной памяти или 2 Гб памяти с буферизацией. Как это понимать ? - Компьютерное железо
1 Гб не буферизованной памяти или 2 Гб памяти с буферизацией Как это понимать ? И что будет если я установлю 2 Гб не буферизованной...

На GeFoce GT 230 с 1,5 гига памяти доступно только 255 мегабайт графической памяти. - Видеокарты
У меня GeForce GT230 1,5 гига памяти. Но под виндой доступно только 255 мегабайт графической памяти. С чем это связано?

Сколько памяти Вам действительно нужно?(полезная статья при выборе памяти) - Оперативная память
Сколько памяти Вам действительно нужно? Компьютер поставляется со стандартным набором памяти, и разработчики программного обеспечения...

Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула - C (СИ)
В программе малые&quot;дыры&quot; избегают,что нужно сделать что бы малые &quot;дыры&quot; не избегались.... # include &lt;stdio.h&gt; # include &lt;stdlib.h&gt; ...

Какую лучше выбрать видеокарту - с большим объёмом памяти или большими частотами памяти? - Видеокарты
Какую лучше выбрать видеокарту - с большим объёмом памяти или большими частотами памяти?! Всё вместе не получается(

1 Гб не буферизованной памяти или 2 Гб памяти с буферизацией - Оперативная память
1 Гб не буферизованной памяти или 2 Гб памяти с буферизацией Как это понимать ? И что будет если я установлю 2 Гб не буферизованной...

Выделение памяти (CodeGear RAD Studio 2009 - C++ builder). Выделение памяти - консоль vs SDIApp - C++ Builder
Есть определенный класс - длинная арифметика. Не идеальный - хранение данных исполнено в виде динамического массива типа short int, каждая...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
03.03.2014, 19:00     освобождннии памяти #2
C++
1
delete[] int_array;
Zla9_Kolu4ka
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 408
03.03.2014, 19:02  [ТС]     освобождннии памяти #3
delete[] int_array;
не помагает
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
03.03.2014, 19:19     освобождннии памяти #4
после
C++
1
2
        for (i = 0; i < 1000; i++) 
            cout << *int_array++ << ' ';
int_array указывает на другой адрес.

Добавлено через 1 минуту
если вам нужна именно запись *int_array++, то пишите
C++
1
delete[] (int_array - 1000);
Zla9_Kolu4ka
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 408
03.03.2014, 19:28  [ТС]     освобождннии памяти #5
если вам нужна именно запись *int_array++, то пишите
delete[] (int_array - 10);
та же ошибка, щас
Я кстате так делал, тока отнимал 999, как я считал
неправильно посчитал
zss
Модератор
Эксперт С++
6289 / 5892 / 1910
Регистрация: 18.12.2011
Сообщений: 15,127
Завершенные тесты: 1
03.03.2014, 19:29     освобождннии памяти #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
int main(void)
{
    int* int_array = new int[1000];
    int i;
    if (int_array != NULL)
    {
        for (i = 0; i < 1000; i++) 
            int_array[i] = i + 1;
         for (int *p=int_array;p<int_array+1000; p++) 
            cout << *p << ' ';
        delete[] int_array;
    }
    getch();
    return 0;
}
Yandex
Объявления
03.03.2014, 19:29     освобождннии памяти
Ответ Создать тему
Опции темы

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