0x00007FFC6DE2D1E2 (ucrtbased.dll)处(位于 6.指针与动态内行申请.01486F340 时发生访问冲突。

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{

int i;//申请多大空间
scanf("%d", &i);
char* p;
p =(char*)malloc(i);//malloc申请空间的单位是字节
strcpy(p, "malloc success");
puts(p);
free(p);
return 0;
我想要达到的结果

这是为啥出错l

strcpy 不会把字符串结尾的0 copy到buffer p;
但puts函数字符串需要以0结尾,所以可能会出错
另外可能是不是你输入的i 值太小了, 小于“malloc success"的长度?

img


添加这两个头文件再试试