gpt4 book ai didi

c - 将指向字符的指针传递给函数

转载 作者:行者123 更新时间:2023-12-04 09:36:36 25 4
gpt4 key购买 nike

C99

我使用一个指向指针的指针并将其传递给一个函数来显示名称。

但是,当我通过调试器时。参数中指向指针的指针不指向任何内容。但是,我用它来显示 main 中的所有名称。

如果我传递一个整数,该整数值仍然存在。为什么不是指向指针的指针?

这与范围有关还是我需要使用 malloc 或 calloc 为指向指针的指针分配内存?

非常感谢您的建议,

#include <stdio.h>

void display_names(char **first_names);

int main(void)
{
char *names[] = {"peter", "Mary", "John", 0};
char **print_names = names;

while(*print_names)
{
printf("Name: %s\n", *print_names);
*print_names++;
}

display_names(print_names);

getchar();

return 0;
}

void display_names(char **first_names)
{
while(*first_names)
{
printf("First name: %s\n", *first_names);
first_names++;
}
}

最佳答案

在 while 循环中,循环直到 print_names 指向任何内容,然后将其传递给 display_names。在此刻, *print_names == 0。不要使用 while 循环,而是尝试:

char **print_names = names;
while(*print_names)
{
printf("Name: %s\n", *print_names);
*print_names++;
}
print_names = names;
display_names(print_names);

这应该打印两次名称 - 一次来自 while 循环,一次来自函数调用。

关于c - 将指向字符的指针传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945674/

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