重複の可能性:
c の動的メモリ割り当てと sizeof()
16 MiB の巨大なブロックを保持し、時間を見つけるために毎回異なる要素にアクセスしようとすることで、キャッシュ ブロックを見つけようとしています。配列の長さを書き込めません。配列を反復処理する for ループを作成するにはどうすればよいですか。配列の長さが必要です。どうすればそれを見つけることができますか? 私は試しsizeof(a)/sizeof(a[0])
ましたが、これはうまくいかないか、割り当てシートに 400 万を保持できると記載されているため、何か間違ったことをしていint
ます..
register *a;
a = malloc(16777216);
int i;
for (i = 0; i < sizeof(a)/sizeof(a[0]); i = i + 1) {
printf("\ni = %d", i);
}
これは i = 0 i = 1 のみを出力します。