C - 如何循环一个字符**
Posted
技术标签:
【中文标题】C - 如何循环一个字符**【英文标题】:C - how to loop through a char** 【发布时间】: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 作为数组的最后一个元素存储 欺骗How can I find the number of elements in an array? 或***.com/questions/37538/… 等 【参考方案1】:您应该显式调用 malloc 以确保编译器知道每个“字符串”的长度。您只分配了指向另一个指针的指针...
【讨论】:
以上是关于C - 如何循环一个字符**的主要内容,如果未能解决你的问题,请参考以下文章