gpt4 book ai didi

c - 指向 char 数组的指针数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:17:20 24 4
gpt4 key购买 nike

海湾合作委员会 4.4.4 c89

但是,我在尝试显示所有动物时遇到了问题。

我有以下代码。

我正在尝试显示数组中的所有动物。所以我有 3 个指向 char* 的指针数组。然后是指向这些数据集的指针数组。

我试图控制内部循环以检查 -1 和外部循环 NULL。

void initialize_char_array()
{
char *data_set1[] = {"dog", "cat", "bee", NULL};
char *data_set2[] = {"rabbit", "ant", "snake", "rat", NULL};
char *data_set3[] = {"cow", "lizard", "beaver", "bat", "hedgehog", NULL};

char *ptr_char[] = {*data_set1, *data_set2, *data_set3, NULL};

display_char_array(ptr_char);
}

void display_char_array(char **ptr_char)
{
size_t inner = 0, outer = 0;

for(outer = 0; ptr_char[outer] != NULL; outer++) {
for(inner = 0; *ptr_char[inner] != -1; inner++) {
printf("data [ %s ]\n", ptr_char[outer][inner]);
}
}
}

非常感谢您的任何建议,

最佳答案

*data_set1data_set1[0] 相同。这是您尝试执行的操作的固定版本。恕我直言,您使用的是品味问题:循环中的索引变量或指针迭代器,显然编译器将生成完全相同的机器代码。

// type of ptr_char changed
void display_char_array(char **ptr_char[])
{
size_t inner = 0, outer = 0;

for(outer = 0; ptr_char[outer] != NULL; outer++) {
// check for NULL in inner loop!
for(inner = 0; ptr_char[outer][inner] != NULL; inner++) {
printf("data [ %s ]\n", ptr_char[outer][inner]);
}
}
}
void initialize_char_array()
{
char *data_set1[] = {"dog", "cat", "bee", NULL};
char *data_set2[] = {"rabbit", "ant", "snake", "rat", NULL};
char *data_set3[] = {"cow", "lizard", "beaver", "bat", "hedgehog", NULL};

// fixed
char **ptr_char[] = {data_set1, data_set2, data_set3, NULL};

display_char_array(ptr_char);
}

关于c - 指向 char 数组的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com