#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;
}
C - malloc выделяет не более 156 кб, почему?
Код:
Выделяет всегда не более 156 кб, хотя оперативной памяти навалом, в чем причина? Нужно ли освобождать как-либо память после использования malloc?
Код:
#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;
}
#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 Мб дошёл =)
Спасибо! Не знал что освобождать нужно, вот уже 20 мб