答案 0 :(得分:2)
您必须声明该指针需要多少内存。 例如,当你输入这个时:* p =" Hello world"它会自动声明为此使用了多少内存。因此,如果您仍然想使用指针来执行此程序,那么您必须使用malloc函数:
#include<stdio.h>
int main()
{
char* p;
p=malloc(100);
printf("Enter some text:");
gets(p);
printf("\nYou have typed: %s\n",p);
return 0;
}
这里是malloc(100);意味着你需要100byte内存来存储该字符串。
答案 1 :(得分:1)
您似乎是从错误的来源学习c,因为您发布的代码很久以前就被教过了,而且不再是。因为它有很多问题,它使用main()
之前使用的int main(void)
{
char p[1024];
if (fgets(p, sizeof(p), stdin) == NULL)
return -1;
puts(p);
return 0;
}
函数的非标准形式。
此外,您正在尝试写入不指向任何位置的指针。
您的计划的好版本将是
<script src="../bower_components/webcomponentsjs/webcomponents.min.js"></script>
答案 2 :(得分:-3)
指针*p
不提供存储空间。你需要提供一些实际上有记忆的东西。例如:
#include <stdio.h>
void main()
{
char p[1024];
gets(p);
puts(p);
}
但请注意,如果您输入的字符数超过1024个,则会再次出现问题。