相关疑难解决方法(0)

279
推荐指数
8
解决办法
19万
查看次数

一个malloc在C中有多大?

我在C中有一个malloc,它是26901 ^ 2*sizeof(double)

这让我想到这里最大的价值是什么?

另外,定义宏来访问这个2D数组有什么问题吗?

 #define DN(i,j) ((int)i * ny + (int)j)
Run Code Online (Sandbox Code Playgroud)

因为这对我来说似乎不起作用 - 或者我至少不确定它是不是.我无法弄清楚如何在宏上进行全视图潜水,告诉我A [DN(indx,jndx)]实际上是在看什么.

c malloc macros totalview

26
推荐指数
3
解决办法
3万
查看次数

C中的堆大小限制

我对C程序的程序执行布局图中的堆有疑问.

我知道所有动态分配的内存都分配在动态增长的堆中.但我想知道C程序的最大堆大小是多少?

我只是附加一个示例C程序...在这里我试图分配1GB内存到字符串甚至做memset ...

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
       char *temp;
       mybuffer=malloc(1024*1024*1024*1);

       temp = memset(mybuffer,0,(1024*1024*1024*1));

       if( (mybuffer == temp) && (mybuffer != NULL))
       printf("%x - %x\n", mybuffer, &mybuffer[((1024*1024*1024*1)-1)]]);
       else
       printf("Wrong\n");

       sleep(20);
       free(mybuffer);
       return 0;
    }
Run Code Online (Sandbox Code Playgroud)

如果我一次在3个实例中运行上面的程序,那么malloc应该至少在一个实例中失败[我感觉如此] ......但仍然是malloc成功的.

如果成功,我可以知道操作系统如何处理3GB的动态分配内存.

c linux heap

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×2

c++ ×1

heap ×1

linux ×1

macros ×1

malloc ×1

memory-management ×1

totalview ×1