首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大小(数组)/大小(Int)

问大小(数组)/大小(Int)
EN

Stack Overflow用户
提问于 2013-05-21 03:20:45
回答 2查看 4.7K关注 0票数 2

在函数中,我声明了一个数组:

代码语言:javascript
复制
int char_count_array[118] = {0};

稍后,我将这个数组传递给一个函数并计算如下:

代码语言:javascript
复制
int xx = sizeof(char_count_array); 
int xy = sizeof(char_count_array)/sizeof(int);  

然而,我得到的结果是: xx =4XY=1

我想我会得到: xx = 472(118 * 4) xy = 118 (472 / 4)。

有人知道我在这里做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-21 03:23:47

如果要将它传递给一个函数,它很可能以int*而不是int[118]的形式进入。因此,您的sizeof将返回指针的大小。当您将C数组传递给函数时,通常也传递元素的数量。

代码语言:javascript
复制
my_func( arr, sizeof(arr)/sizeof(arr[0]) );
票数 4
EN

Stack Overflow用户

发布于 2013-05-21 03:23:49

最有可能的情况是,当您将数组传递给函数时,您实际上是在传递一个pointer,该4在您的计算机上具有4的大小。如果需要知道数组的大小,则需要将大小作为另一个参数传递给函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16661605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档