您好我试图从用户那里获取3个字符串输入,而不是将这些值传递给数组指针。
然而,当我传递值时,我得到一个空引用。我已经研究过这个问题并找到了一些使用strcpy()的解决方案。但到目前为止,实施它们并没有成功。以下是我的代码。
任何建议都会很棒。感谢
char s1[50], s2[50], s3[50];
printf("Enter 3 strings ");
scanf("%s %s %s", s1, s2, s3);
//THESE ARE NULL
char *argBB[] = { &s1, &s2, &s3, '\0'};
答案 0 :(得分:2)
您的代码存在一些问题。对于您的scanf电话,%s
需要char *
,但您正在传递char *[50]
。您将变量argBB
定义为char *[]
,但是您使用一个三个正确的变量和一个常量char来初始化它。以下是更正后代码的简化版本:
#include <stdio.h>
int main() {
char str[20];
printf("enter a string\n");
scanf("%s", str);
printf("your string is %s\n", str);
char *arg[] = {str, ""};
printf("your string is still %s\n", arg[0]);
}