【发布时间】:2022-01-17 05:50:53
【问题描述】:
如何在不知道大小的情况下循环遍历这个双指针。
char *arr[] = {"ant", "bat", "cat", "dog", "egg", "fly"};
char **ptr = arr; // Double pointer
我试过了,但我得到一个错误
while (*ptr){
printf("%s\n",*ptr);
ptr+=1;
}
我不想要类似的东西,但有双指针。
char *word = *ptr;
for (int i = 0; *(word + i) != '\0'; i++)
{
printf("%c", *(word + i));
}
【问题讨论】:
-
你得到什么错误?
-
16711 分段错误:11 ./Main
-
使用哨兵值?例如
char *arr[] = {"ant", "bat", "cat", NULL}; -
好吧,你可以使用 while (*ptr),但你的列表中没有零。尝试添加一个 NULL。
-
带有
for循环。for(size_t i=0; i < sizeof arr / sizeof arr[0]; i++)