可能重复:
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。