kul*_*eep 6 c aix memory-management dynamic 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字节也失败了.
谢谢
尝试 calloc(1, sizeof(ifp_handle_t)); 而不是 calloc(sizeof(ifp_handle_t), 1); 我可能错了,但看来你颠倒了参数。