gpt4 book ai didi

c - 指针和字符数组

转载 作者:行者123 更新时间:2023-11-30 21:22:54 26 4
gpt4 key购买 nike

我使用gcc 4.9.2-10 deb8u1编译器来编译这是我的代码

 #include <stdio.h>
int main(){
char *s;
char sa[10] , sb[10];
scanf("%s", sa);
printf("line\n");
scanf("%s", sb);
printf("%s %s", sa, sb);
}

如果 char 位于提供的空间之下,上面的代码没有任何问题

但是

    scanf("%s", s);
printf("line\n");
scanf("%s", sa);
printf("%s %s", s, sa);

输入:$:胡

结果:线(空)胡

有人可以告诉我第二个代码错误会发生什么?我不明白为什么我无法输入第二个..非常感谢.!

最佳答案

在你的代码中

char *s;
char sa[10] , sb[10];

你不能用s做太多事情。

scanf("%s", sa);

只要输入合适就可以。您可以跳过几个环节,在循环中读取 block 中的输入(如果可能更长的话)(请参阅 here )

但是,在您尝试问题的“但是”部分

scanf("%s", s);

由于 s 不指向内存 - 你需要分配一些内存 - 你有未定义的行为,所以任何事情都可能发生。

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

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