Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
1

new и delete

28.08.2013, 19:07. Показов 2104. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как лучше очищать память?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
 
 
//как лучще очищать память?
int main(){
    char *buff = new char;
        
for(int i=0; i<90000000000; i++){
        
        sprintf(buff,"%d",i);
        printf(buff,"%d");
        delete buff; // так?
    }
    //delete buff; или так?
    system("pause");
    return 0;
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2013, 19:07
Ответы с готовыми решениями:

Написать аналог процедуры Delete. Процедурой Delete и функцией Copy не пользоваться
Написать аналог процедуры Delete. Процедурой Delete и функцией Copy не пользоваться. кто сможет?...

Используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю, что будет если...

Какая разница между delete и delete[]
Нашел информацию на разных сайтах и всё равно остались вопросы. Я понимаю, что delete используется...

В чем разница между delete и delete[]?
а можете еще по подробней рассказать про delete, точнее даже delete, чем именно отличается delete...

33
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
28.08.2013, 19:45 21
Author24 — интернет-сервис помощи студентам
-J_O_K_E_R-, ох.. а delete где? конечно он будет, ты выделил память, записал в нее, а потом со следующего круга выделил новую, старая при этом осталась и доступ к ней теряется.
0
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
28.08.2013, 19:48  [ТС] 22
Цитата Сообщение от VLK Посмотреть сообщение
-J_O_K_E_R-, ох.. а delete где? конечно он будет, ты выделил память, записал в нее, а потом со следующего круга выделил новую, старая при этом осталась и доступ к ней теряется.
да просто код делался под одно выполнение а потом надо было сделать по 2ляма
и заметил утечку....

теперь хочу перевести все char на динамическое выделение а не фиксированное...
0
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
28.08.2013, 19:49 23
Цитата Сообщение от -J_O_K_E_R- Посмотреть сообщение
теперь хочу перевести все char на динамическое выделение а не фиксированное...
амбициозные планы
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
28.08.2013, 19:49 24
Цитата Сообщение от -J_O_K_E_R- Посмотреть сообщение
все парни спасибо разобрался где утечка памяти
По данным диспетчера задач винды нельзя сказать есть утечка или нет

Цитата Сообщение от -J_O_K_E_R- Посмотреть сообщение
теперь хочу перевести все char на динамическое выделение а не фиксированное...
только зачем это нужно?
0
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
28.08.2013, 19:50  [ТС] 25
Цитата Сообщение от VLK Посмотреть сообщение
амбициозные планы
я еще начинаю программировать на С++

косяки делаю...
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
29.08.2013, 00:39 26
C++
1
2
        char *buff = new char;
        sprintf(buff,"%d",i);
Рано или поздно упадет
1
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
29.08.2013, 08:50 27
Цитата Сообщение от -J_O_K_E_R- Посмотреть сообщение
for(int i=0; i<90000000000; i++)
Слишком большое значение для int. Оно будет усечено.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
29.08.2013, 09:22 28
Цитата Сообщение от Jupiter Посмотреть сообщение
По данным диспетчера задач винды нельзя сказать есть утечка или нет
Поясните пожалуйста.
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
29.08.2013, 12:12 29
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Поясните пожалуйста.
что пояснить? диспетчер задач это для домохозяек для отслеживание утечек памяти нужно использовать спец. средства VLD/функции crt/valgrind
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
29.08.2013, 12:16 30
Цитата Сообщение от Jupiter Посмотреть сообщение
диспетчер задач это для домохозяек для отслеживание утечек памяти нужно использовать спец. средства VLD/функции crt/valgrind
Конечно. Но нельзя так вот утверждать, что по диспетчеру задач вообще невозможно проследить сам факт утечки. Я вот за что.
0
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,235
29.08.2013, 12:29 31
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Конечно. Но нельзя так вот утверждать, что по диспетчеру задач вообще невозможно проследить сам факт утечки. Я вот за что.
я прослеживал

что, по диспетчеру задач нельзя посмотреть как тут утекает память:

C++
1
2
3
4
double *var;
 
for (int i = 0; i < 1000; i++)
{ var = new double[100000];}
0
погромист
415 / 251 / 30
Регистрация: 27.08.2012
Сообщений: 550
29.08.2013, 13:34 32
VLK, http://www.gunsmoker.ru/2009/05/blog-post_24.html
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
29.08.2013, 16:56 33
Цитата Сообщение от VLK Посмотреть сообщение
что, по диспетчеру задач нельзя посмотреть как тут утекает память
Если у Вас утекает по нескольку байт в минуту, то врядли диспетчер задач поможет
1
8 / 14 / 3
Регистрация: 19.08.2013
Сообщений: 68
29.08.2013, 17:09 34
Цитата Сообщение от VLK Посмотреть сообщение
глупый наверное вопрос, какая цель данной программы
Ну и глупый ответ: чистить буфер.
0
29.08.2013, 17:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2013, 17:09
Помогаю со студенческими работами здесь

Есть ли операторы new, new[], delete, delete[]
Есть ли операторы new, new, delete, delete в Си? И, если есть, чем они отличаются? Тихо...

Чем отличается delete[] от delete?
чем отличается? delete mas от delete mas

Клавиша delete не работает,а вот shift + delete работает
Ни ничего не могу удалить как обычно клавишей delete работает только при сочетании shift + delete...

Delete или delete []
Здравствуйте. Написал программу которая создает динамический массив, заполняемый нулями и выводит...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru