を使用して変更ここでは、コードスニペットです:ポインタアドレスはmallocの
void main() {
int i,*s;
for(i=1;i<=4;i++) {
s=malloc(sizeof(int));
printf("%lu \n",(unsigned long)s);
}
}
私のCOMPのint型のサイズは2バイトなので、16ビットずつ増加いけないのprintfコマンドprintアドレス、代わりにそれがアドレスを出力します次のようになります。
2215224120
2215224128
2215224136...
どうしてですか?
'malloc'はあなたのアドレス空間全体にアドレスを返します。 – Mat
プロセッサアーキテクチャとは何ですか? 'malloc'は誰ですか? –
@Matによれば、mallocから返されるアドレスについては何も仮定することはできません。通常、最小整列と最小サイズの割り当てがありますが、あなたの場合は8バイトに見えます。 –