在我们的一个应用程序模块中,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字节也会失败。
由于
答案 0 :(得分:1)
尝试calloc(1,sizeof(ifp_handle_t));而不是calloc(sizeof(ifp_handle_t),1); 我可能错了,但似乎你颠倒了参数。