小编mf_*_*mf_的帖子

为什么我无法管理~382MB的内存?

目标:管理一个 unsigned long tomBOLA[5][10000000];

$top 给我:

top - 14:05:35 up  4:06,  4 users,  load average: 0.46, 0.48, 0.44
Tasks: 182 total,   1 running, 180 sleeping,   1 stopped,   0 zombie
Cpu(s): 14.4%us,  2.4%sy,  0.0%ni, 82.5%id,  0.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3092064k total,  1574460k used,  1517604k free,   168944k buffers
Swap:  1998840k total,        0k used,  1998840k free,   672756k cached
Run Code Online (Sandbox Code Playgroud)

程序有一个大小为(5*10000000)*8bytes = 382MB的malloc,然后用0填充并读取存储在tomBOLA中的内容:

long int **tomBOLA;

if((tomBOLA=(long int **)malloc(5))==NULL){ /*MALLOC()*/
    printf("\n\tMEMORY ERROR-1");
    exit(1);
}
for(i=0;i<5;i++){
    if((tomBOLA[i]=(long int *)malloc(10000000*sizeof(long int)))==NULL){
        printf("\n\tMEMORY ERROR-2");
        exit(1);
    }
} …
Run Code Online (Sandbox Code Playgroud)

c pointers memory-management

0
推荐指数
1
解决办法
111
查看次数

标签 统计

c ×1

memory-management ×1

pointers ×1