我知道我的ide是否有问题,但我需要帮助



好的,所以我一直在学习cs50 EDX课程,并一直在使用他们的ide。我今天继续写了一些非常简单的代码,只是想看看我是否记得。我不知道我是不是很笨,但当我把这个代码放进去时,我会得到一个错误:";format指定类型"char*",但参数的类型为"string*"(又名"char**"([-Weror,-Wformat]scanf("%s",&name(">

我有其他的代码,有相似的几乎相同的代码,它工作得很好。请帮忙,我们将不胜感激。(我是初学者(

#include <cs50.h>
#include <stdio.h>

int main(void)
{
string name;
printf("Name: ");
scanf("%s", &name);
printf("Hello %s", name);
}

从youtube复制的代码对我不起作用:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char name[10];
printf("Name: ");
scanf("%s", &name);
printf("Hello %s", name);
}

当我在这里搜索时:https://github.com/cs50/libcs50/blob/develop/src/cs50.hstring被声明为typedef char *string;,因此您的代码有2个问题。

  1. 您没有为string分配内存,这可能会导致编译后崩溃
  2. 您没有正确使用scanf。您应该直接传递string变量,而不是通过它的地址

最新更新