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

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

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

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

03.03.2014, 18:54. Просмотров 162. Ответов 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     освобождннии памяти
Посмотрите здесь:

Выделение памяти C++
C++ Выделение памяти
кириллица в памяти C++
O(1) дополнительной памяти C++
C++ Очистка памяти
C++ Очистка памяти
Выделение памяти C++
C++ Выделение памяти
Об освобождении памяти C++
C++ C++ Ошибка памяти
О памяти C++
C++ Чтение из памяти

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
03.03.2014, 19:00     освобождннии памяти #2
C++
1
delete[] int_array;
Zla9_Kolu4ka
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 398
03.03.2014, 19:02  [ТС]     освобождннии памяти #3
delete[] int_array;
не помагает
retmas
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
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
Сообщений: 398
03.03.2014, 19:28  [ТС]     освобождннии памяти #5
если вам нужна именно запись *int_array++, то пишите
delete[] (int_array - 10);
та же ошибка, щас
Я кстате так делал, тока отнимал 999, как я считал
неправильно посчитал
zss
Модератор
Эксперт С++
 Аватар для zss
6115 / 5718 / 1849
Регистрация: 18.12.2011
Сообщений: 14,615
Завершенные тесты: 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     освобождннии памяти
Ответ Создать тему
Опции темы

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