我用的工具是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的標記