问题遇到的现象和发生背景
做的练习题,已经照着能运行的标准答案修改了,但是依旧会报错
问题相关代码,请勿粘贴截图
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最初输入的整型数大小,最后输出输入的字符串即可
int main()
{
int i;
scanf("%d", &i);
char* p;
p =(char*)malloc(i);
char c ;
scanf("%c",&c);
gets(p);
puts(p);
return 0;
}
运行结果及报错内容
运行到puts(p)的地方就会报错
0x00007FFEE220F130 (ucrtbased.dll)处(位于 作业.exe 中)引发的异常: 0xC0000005: 写入位置 0xFFFFFFFFC3A0EDB0 时发生访问冲突。
我的解答思路和尝试过的方法
尝试过把puts(p)换成printf("%s",p),结果还是会在printf的地方报错
我想要达到的结果
解决报错问题,想知道这会不会是我电脑的问题