笔者来聊一下gcc申请超过2G的内存碰到的问题
1、问题背景
笔者在调试模拟器的时候,遇到一个问题,VC编译器编译的申请超过2G内存的代码可以执行,但是GCC编译的代码执行,就会报申请不到的错误。类似于下面的错误。当然笔者在64位上面申请是OK的。
环境:32位 2015 VC编译器
代码:malloc 函数申请


顺便学到一个小知识:
- 通过perror函数,可以打印出相关库函数申请失败的原因,是字符串内容,
- 格式是:增加 冒号“:”,然后字符串原因,然后换行
- 也可以通过GetLastError(),来获取错误码,
函数原型如下: