0
我在查找动态分配数组中数组元素的数量时遇到了问题。 如果我有一个正常的数组我知道如何找出多少元素在那里:C中动态分配数组的数组元素数
int array[] = {1,2,3};
printf("Number of array elements: %i\n",(int)(sizeof(array)/sizeof((array)[0])));
此打印我:
Number of array elements: 3
但是,当我要动态分配一个数组,并知道其大小我无法以相同的方式得到它:
int * array;
array = malloc(3*sizeof(int));
printf("Number of array elements: %i\n",(int)(sizeof(array)/sizeof((array)[0])));
这总是给我:
Number of array elements: 2
无论多么多么大或小我做的分配总是打印
2
请有人可以帮忙吗?