Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C - malloc выделяет не более 156 кб, почему?

6.8K
08 октября 2006 года
byff
38 / / 01.07.2006
К примеру
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int *srt;
long long i;
i=1;
while(srt != NULL)
{
i++;
srt = (int *) malloc(i * sizeof(int));
printf("=>%d\n",i);
}
printf("=======>%d\n",(i * sizeof(int)) );

return 0;
}


Выделяет всегда не более 156 кб, хотя оперативной памяти навалом, в чем причина? Нужно ли освобождать как-либо память после использования malloc?
22K
08 октября 2006 года
Mr. Torture
1 / / 08.10.2006
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
int *srt;
long long i;
i=1;
while(srt != NULL)
{
i++;
if(i>2){free(srt);}
srt = (int *) malloc(i * sizeof(int));
printf("=>%d\n",i);
}
printf("=======>%d\n",(i * sizeof(int)) );

return 0;
}


Так попробуй, у тебя память не освобождалась =) У меня в таком цикле уже до 25 Мб дошёл =)
6.8K
08 октября 2006 года
byff
38 / / 01.07.2006
Спасибо! Не знал что освобождать нужно, вот уже 20 мб
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог