久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

c++ - win764位環境下,我用GCC為什么指針占8個字節,而long是4個字節?

瀏覽:208日期:2022-10-12 09:24:08

問題描述

我用的工具是CFree套了個gcc的殼,寫代碼的時候偶然發現,sizeof指針是字節,而long是4字節。

且跑一個malloc最大申請空間代碼的測試程序得到結果是1.99g,所以說明這個程序應該還是32位的程序,

那么為什么指針的sizeof是8個字呢 ?

問題解答

回答1:

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的標記

標簽: Windows系統 win7
主站蜘蛛池模板: 鹤山市| 承德市| 黄冈市| 分宜县| 彭阳县| 清水河县| 鹤峰县| 来凤县| 抚顺市| 桑日县| 道孚县| 武义县| 哈密市| 海门市| 岳普湖县| 连城县| 报价| 津市市| 正镶白旗| 田林县| 清原| 黑山县| 绩溪县| 和田市| 吴旗县| 西丰县| 扬州市| 黑山县| 钦州市| 惠东县| 垦利县| 桐庐县| 应用必备| 海城市| 称多县| 达州市| 信丰县| 昌吉市| 三穗县| 滨海县| 卓尼县|