calloc失败并返回NULL

时间:2012-11-06 06:04:39

标签: c memory-management dynamic aix calloc

在我们的一个应用程序模块中,calloc()失败并返回NULL。它尝试分配的内存量是9292字节的结构。操作系统是AIX 7.1并运行VIOS 2.2.1.3。

该机器有2 + GB内存,似乎没有内存不足的问题。相同的应用程序模块在其他一个盒子上正常运行,这些盒子与有问题的盒子具有相同的配置。以下是两个盒子的内存片段,它们是相同的!

工作箱:

RLIMIT_AS      (infinite) (infinite)
RLIMIT_CORE    1073741312 (infinite)
RLIMIT_CPU     (infinite) (infinite)
RLIMIT_DATA     134217728 (infinite)
RLIMIT_FSIZE   (infinite) (infinite)
RLIMIT_NOFILE        2000 (infinite)
RLIMIT_RSS       33554432 (infinite)
RLIMIT_STACK     33554432 2147483646 

问题框:

RLIMIT_AS      (infinite) (infinite)
RLIMIT_CORE    1073741312 (infinite)
RLIMIT_CPU     (infinite) (infinite)
RLIMIT_DATA     134217728 (infinite)
RLIMIT_FSIZE   (infinite) (infinite)
RLIMIT_NOFILE        2000 (infinite)
RLIMIT_RSS       33554432 (infinite)
RLIMIT_STACK     33554432 2147483646 

我很无能为力,因为无法弄清楚为什么calloc()即使在这个盒子上的9292字节也会失败。

由于

1 个答案:

答案 0 :(得分:1)

尝试calloc(1,sizeof(ifp_handle_t));而不是calloc(sizeof(ifp_handle_t),1); 我可能错了,但似乎你颠倒了参数。