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 - 如何循环一个字符**的主要内容,如果未能解决你的问题,请参考以下文章

请问python如何打出这些字符串?

c语言中如何判断输入的是不是数字?

JS如何遍历字符串

C++ - 字符串是不是包含一个单词 - 带有简单循环?

C程序两个字符串数组如何相互赋值?

C语言如何读取TXT全部字符?