无法将字符串输入存储到char指针中

时间:2019-07-20 10:08:09

标签: c string pointers scanf

我刚刚开始学习如何用C语言编写uni。我正在尝试从char数组中升级,并尝试将字符串存储在char指针中,但是由于某种原因,终端给了我一个奇怪的错误。

我正在使用CLion和Ubuntu终端。当我运行命令make main时,它将在目录中创建一个make,但返回警告:

main.c:6:19: warning: format ‘%s’ expects a matching ‘char *’ argument 
[-Wformat=]
scanf("%[^\n]%s", s);
             ~^

这是我的代码:

#include<stdio.h>

int main(void)
{
    char *s;
    scanf("%[^\n]%s", s);
    printf("Hello World! %s\n", s);
}

然后,当我运行./main时,程序将输出:Hello World! (null)。我实际上是将char *传递给scanf,所以我真的不知道是什么导致了此错误。事实上,当我尝试将%s替换为%*c时,make告诉我*c期望有int!老实说,我对他的整个事情很困惑,所以任何帮助都将不胜感激。

0 个答案:

没有答案