powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Си. Освободить память 2-мерного сторкового массива
8 сообщений из 308, страница 13 из 13
Си. Освободить память 2-мерного сторкового массива
    #40137381
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Правда немного изменил:

Код: plaintext
1.
2.
3.
4.
5.
6.
char* str_temp=(char *)malloc(5000);
char* p=(char *)malloc(5000); // Как эту память освободить собираешься?

for(p = str_temp;*p != 0; p++) {
    if(*p < 32) {*p = '?';}
}



Большое спасибо!

Чуть позднее еще с кодировкой попробую.

Ничего что ты утечку памяти устроил?
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137446
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl
Уткъ

Правда немного изменил:

Код: plaintext
1.
2.
3.
4.
5.
6.
char* str_temp=(char *)malloc(5000);
char* p=(char *)malloc(5000);

for(p = str_temp;*p != 0; p++) {
    if(*p < 32) {*p = '?';}
}

Маладэц! Организовал утечку памяти.
Компилятор на такое, кстати, ругаться должен. Ты эту ругань проигнорировал?



А из-за чего утечка?

компилятор молчал...
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137447
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Уткъ
Правда немного изменил:

Код: plaintext
1.
2.
3.
4.
5.
6.
char* str_temp=(char *)malloc(5000);
char* p=(char *)malloc(5000); // Как эту память освободить собираешься?

for(p = str_temp;*p != 0; p++) {
    if(*p < 32) {*p = '?';}
}



Большое спасибо!

Чуть позднее еще с кодировкой попробую.

Ничего что ты утечку памяти устроил?


Даже не представляю как правильно для нее free() сделать... думал после цикла где-нить.

А как ее освободить чтобы она не утекала?
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137466
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
free нужно делать в момент когда память тебе уже не нужна. Где конкретно в твоем код - это нам не ведомо.

Ты-же хитрец. Всё не показал.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137477
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Dima T
пропущено...

Ничего что ты утечку памяти устроил?


Даже не представляю как правильно для нее free() сделать... думал после цикла где-нить.

А как ее освободить чтобы она не утекала?

Как ты ее освободишь после цикла если ты указатель совсем в другое место направил?
Код: plaintext
1.
for(p = str_temp;*p != 0; p++) {


Ты потерял адрес, по которому была выделена память.

И начинать надо с того зачем ты вообще память выделял?

Подозреваю просто из-за собственной глупости.
Забыл что тебе лень книжки читать, так лучше напиши, без указателей
Код: plaintext
1.
2.
3.
for(int i = 0 ;str_temp[i] != 0; i++) {
    if(str_temp[i] < 32) {str_temp[i] = '?';}
}


результат будет такой же 22440612
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137528
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Уткъ
пропущено...


Даже не представляю как правильно для нее free() сделать... думал после цикла где-нить.

А как ее освободить чтобы она не утекала?

Как ты ее освободишь после цикла если ты указатель совсем в другое место направил?
Код: plaintext
1.
for(p = str_temp;*p != 0; p++) {


Ты потерял адрес, по которому была выделена память.

И начинать надо с того зачем ты вообще память выделял?

Подозреваю просто из-за собственной глупости.
Забыл что тебе лень книжки читать, так лучше напиши, без указателей
Код: plaintext
1.
2.
3.
for(int i = 0 ;str_temp[i] != 0; i++) {
    if(str_temp[i] < 32) {str_temp[i] = '?';}
}


результат будет такой же 22440612



Так даже понятнее :-)


Да, это моя собственная глупость, мож через какое-то время чуток поумнею )

Спасибо за решение )
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137530
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
free нужно делать в момент когда память тебе уже не нужна. Где конкретно в твоем код - это нам не ведомо.

Ты-же хитрец. Всё не показал.


Да, я просто в конце ее освождаю.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40137556
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИ начинать надо с того зачем ты вообще память выделял?

Потому что он считает malloc() магическим заклинанием без которого переменные
работать не могут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
8 сообщений из 308, страница 13 из 13
Форумы / C++ [игнор отключен] [закрыт для гостей] / Си. Освободить память 2-мерного сторкового массива
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]