【发布时间】:2021-02-04 16:42:33
【问题描述】:
我有一个字符串数组 char**。它有 4 个元素,当我尝试使用 sizeof(array) / sizeof(array[0]) 查找元素数量时,它总是返回 1,这导致 for 循环无法遍历 char** 中的所有元素。
char** departmentList;
departmentList = malloc(sizeof(*departmentList)); // allocate
getAllDepartments(departmentList, recordsPtr[0], numOfDepartments);
printf("%d",sizeof(departmentList)/sizeof(departmentList[0])); // return 1
printf("%d",sizeof(departmentList[0])); // return 8
sizeof(departmentList) 也产生 8。
【问题讨论】:
-
您无法从指针中获取指向数组的大小。您需要在某处明确存储长度
-
...或将标志值 NULL 作为数组的最后一个元素存储
标签: c