相关疑难解决方法(0)

c中的数组大小

一个让我烦恼的简单问题.假设我在main中定义了一个数组,就像这样int arr[5].现在,如果我仍然在main中并且我设置int i = sizeof(arr)/sizeof(arr[0])然后我被设置为5,但是如果我将数组作为函数参数传递并在此函数中执行完全相同的计算,则得到不同的数字.这是为什么?起初我认为它是因为在一个函数中arr是一个指针,但据我所知,它arr也是一个指针在主内部!

另外,如果我做一些非常相似的事情,我只是动态地初始化数组,我得到了奇怪的结果:

int *arr = (int*) malloc(sizeof(int) * 5);
int length = sizeof(*arr) / sizeof(arr[0]);
printf("%d\n",length);
Run Code Online (Sandbox Code Playgroud)

这里的输出是1.有什么想法吗?提前致谢!

c arrays size

18
推荐指数
3
解决办法
2万
查看次数

标签 统计

arrays ×1

c ×1

size ×1