gpt4 book ai didi

c - 为什么数组正确,但计数不正确?

转载 作者:行者123 更新时间:2023-11-30 21:33:05 25 4
gpt4 key购买 nike

int arrays[100];
fseek(fp, 30, SEEK_SET);
fread(arrays, sizeof(int), 20, fp);
printf("%i\n", arrays);
int size = (sizeof(arrays)/ sizeof(int));
printf("There are %i numbers.", size);

//Output:
//6421876
//There are 100 numbers

显然数组中有 7 个数字,为​​什么它说是 100?

最佳答案

不,该数组有 100 个元素。您可能只写入了其中的一些(20 个,假设您的 fread 工作正常),但这不会改变数组大小。

这与将 250 毫升倒入 1 升水 jar 中没有什么不同。水壶的大小不会仅仅因为未满而神奇地减少 75%。

无论如何,您看到的七个数字(实际上是一个七位数的数字)与写入数组的内容无关。在大多数情况下,表达式array将衰减到该数组的第一个元素的地址。因此,您看到的数字是数组所在的位置,而不是它所保存的内容。

关于c - 为什么数组正确,但计数不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37455695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com