gpt4 book ai didi

c - 指向字符串数组的字符串参数?

转载 作者:行者123 更新时间:2023-11-30 18:56:20 26 4
gpt4 key购买 nike

我刚刚开始学习字符串,并且有一个关于使用指针参数将字符串数组发送到函数的问题。我试图简单地打印数组中的字符串之一,但我什至无法做到这一点。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int stringSum(char *s);
/*void minMaxValues(char *s, int *min, int *max);*/

int main(void)
{
int value;
char* text[] = { "1 + 2 + 3 + 4",
"7",
"30 + 20 + 10",
"9 + 900 + 90000 + 9000 + 90" };
stringSum(&text);
}

int stringSum(char *s)
{
printf("%s\n",s[0]);
}

尝试编译时出现一些名为段错误的错误。我将字符串数组的地址传递给函数是否不正确?如有帮助,我们将不胜感激

最佳答案

将函数 header 更改为:

int stringSum(char **s);

这允许您传递整个数组。您当前正在做的是将单个字符串传递给该方法,然后仅打印第一个字符 (s[0])。

也不需要通过引用传递数组。只需 stringSum(text); 就可以了。这是因为您想要将数组地址的传递给该方法。当您对其进行索引(使用 s[0])时,您将访问数组中第一个字符串的地址。

<小时/>

此外,请记住从 stringSummain 返回一个值,尽管这与您的错误无关。

关于c - 指向字符串数组的字符串参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517342/

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