数组函数的大小返回 int 的大小而不是数组
Size of array function return size of int instead of array
输出总是 8!我想知道这个数字是从哪里来的,我怎样才能得到数组大小的正确大小,即 6?
#include <stdlib.h>
#include <stdio.h>
void cal(int a[])
{
printf("the size of array is= %dn", (int)(sizeof(a)/(sizeof)(int)));
}
int main ()
{
int lis[]={1,2,3,4,5,6,7,8,9};
cal(&lis[3]);
return 0;
}
当你只有一个 int 指针时,你无法计算 int 数组的大小。您将始终获得指针大小。
你可以试试这个(不确定这是否是个好主意):-
#define arrSz(a) (sizeof(a)/sizeof(*a))
相关文章:
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 按字符值访问int数组
- 将 int 数组转换为 std::vector<int*>
- 比较if语句中的数组值和int值
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 在c++中获取两个大int,并将它们存储在数组中
- 声明数组>> int arr[] 时出错;在C++(虽然在 Java 中有效)?
- 有没有办法用 2D 数组 (int) 重载构造函数?
- 当大小未知时,如何迭代指向数组 (int*) 的指针?
- 接受来自函数的二维数组(int 类型)并将其返回到主函数
- 数组 + int 作为一个参数做什么
- 如何制作'bit'数组而不是数组'int'?
- 动态2d数组:int(*ptr)[4]=new int[7][4];
- 为[z][y][x]int定义数组int[x][y][z]有什么好处?
- 用Visual c++编写二维数组int[n][m]到HDF5文件
- 数组int未正确返回
- 将元素推送到动态分配的指针数组int C++
- 如何在另一个数组中插入多维数组(int而非char)
- 将数组(int*)设置为NULL是否释放其占用的内存
- C++如何将数组 int[10] push_back std::vector<int[10]>?