c++ - win764位环境下,我用GCC为什么指针占8个字节,而long是4个字节?
PHPz
PHPz 2017-04-17 15:38:46
0
1
1242

我用的工具是CFree套了个gcc的壳,写代码的时候偶然发现,sizeof指针是字节,而long是4字节。

且跑一个malloc最大申请空间代码的测试程序得到结果是1.99g,所以说明这个程序应该还是32位的程序,

那么为什么指针的sizeof是8个字呢 ?

PHPz
PHPz

学习是最好的投资!

全員に返信(1)
左手右手慢动作

int long short の具体的なバイト数はコンパイラの実装によって異なります。絶対的な数はありません。

sizeof ポインターが必要な場合は、必ず sizeof(void*)

を使用してください。

MinGW は LLP64、long は 32 ビットです。

malloc を実行するときに、パラメータが signed int で表されている場合、2Gb メモリを申請するときに 2^31 を超える数値を signed int に入力すると、データ オーバーフローにより malloc が失敗する可能性があることに注意してください。 size_t

を使用する必要があります

プログラムが何ビットなのか知りたい場合は、タスク マネージャーを開くと、32 ビット プロセスの後ろに *32 マークが表示されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート