次のコードWTH 2つの質問は:構造体/クラスは何とかメモリパディングに影響しますか?
struct Value
{
int value
}
void main()
{
Value v1;
Value v2;
int a;
int b;
return 0;
}
1)なぜ私の変数のメモリアドレスは、下向きの機能に保存されていますか?
V1 - > 0x00007fff5fbff758
V2 - >
しかし、私の構造体で、たとえば、彼らは他の方向に格納されている0x00007fff5fbff750?例: Valueに別の変数int value_2がある場合
v1.value - > 0x00007fff5fbff750
v2.value_2 - > 0x00007fff5fbff754
2) なぜメモリおよびINT B連続int型であり、なぜメモリにV1とV2連続していません。
どのような種類のアライメントは認識されていませんか?
CまたはC++?彼らは異なっており、Cは 'クラス 'を持っていません。 – NathanOliver
パディングを持つこともできないこともあり、変数は任意の順序で格納できます。これはすべて実装に依存します。 –
あなたのコードには 'value_2'はありません。 –