gpt4 book ai didi

c++ - 为什么 mac 和 linux 的结果不同?

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:22 26 4
gpt4 key购买 nike

当我在 Mac 中编译以下代码时,它输出“correct”;但是当用 g++ (Red Hat 4.4.7-16) 编译它时,它会输出“错误”。也就是说malloc fail to new memory。为什么以及如何解决?

typedef struct NODE_t{
uint32_t pos;
char refChar;
char targetChar;
}*NODE;
int main() {
uint64_t sub_size = 51086559504ll;
NODE nodes = (NODE) malloc(sub_size);
if (NULL == nodes) {
printf("error");
} else {
printf("correct\n");
}
return 0;
}

最佳答案

你得到一个错误,因为 sub_size 对于 malloc() 的 Red Hat 实现来说是一个太大的值。基本上,您请求的字节数多于可用字节数。可能是您的 Linux 机器内存较少,或者代码中可能存在一些限制,阻止它按预期工作。

关于c++ - 为什么 mac 和 linux 的结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com