84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
我用的工具是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的标记