可能重复:
How to find the 'sizeof' (a pointer pointing to an array)?
我红this但它对我帮助不大。
int* sum;
int size = 10;
sum = calloc(10, sizeof(int));
printf("Total length: %d", sizeof(sum)/sizeof(*sum))
代码按预期返回1.
我知道使用size变量会更容易。
我的问题是,有没有办法使用sizeof找出这个数组正确的大小?
答案 0 :(得分:2)
除了自己跟踪大小(例如示例中的size
变量)之外,没有可移植/标准的方法来获取动态分配的内存块的大小。