84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
我用的工具是CFree套了个gcc的壳,写代码的时候偶然发现,sizeof指针是字节,而long是4字节。
且跑一个malloc最大申请空间代码的测试程序得到结果是1.99g,所以说明这个程序应该还是32位的程序,
那么为什么指针的sizeof是8个字呢 ?
学习是最好的投资!
int long short具体多少字节都是implement defined ,具体多少看编译器实现,没有绝对的多少,只有同一个编译器才保证大小一致
如果要sizeof指针的话,确保你用的是sizeof(void*)
sizeof(void*)
MinGW是LLP64,long就是32位。
注意你malloc的时候,参数使用signed int表示时,那么在你申请2Gb内存的时候,有可能把一个超过2^31的数放进了signed int,数据溢出导致malloc失败,你应该使用size_t
如果你好奇你的程序是多少位,可以打开任务管理器,32位的进程后面会有*32的标记
int long short具体多少字节都是implement defined ,具体多少看编译器实现,没有绝对的多少,只有同一个编译器才保证大小一致
如果要sizeof指针的话,确保你用的是
sizeof(void*)
MinGW是LLP64,long就是32位。
注意你malloc的时候,参数使用signed int表示时,那么在你申请2Gb内存的时候,有可能把一个超过2^31的数放进了signed int,数据溢出导致malloc失败,你应该使用size_t
如果你好奇你的程序是多少位,可以打开任务管理器,32位的进程后面会有*32的标记