Lav*_*dor 14 c arrays pointers
在C中:在将结构发送到函数后,如何找到结构数组中的元素数?
int main(void) {
myStruct array[] = { struct1, struct2, struct3, struct4, struct5, struct6 };
printf("%d\n", sizeof(array));
printf("%d\n", sizeof(array[0]));
f(array);
}
void f(myStruct* array) {
printf("%d\n", sizeof(array));
printf("%d\n", sizeof(array[0]));
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,main中的printf显示的结果与f中的printf不同.我需要知道数组中有多少元素.
pmg*_*pmg 19
你不能.
你必须将大小传递给函数,例如:
void f(myStruct* array, size_t siz);
Run Code Online (Sandbox Code Playgroud)
还要注意,在f
数组中是一个指针,而在main
它中是一个数组.数组和指针是不同的东西.