0x00007FFC7195D1E2 (ucrtbased.dll)处(位于 6.指针与动态内行申请.exe 中)引发的异常: 0xC0000005: 写入位置 时发生访问冲突。

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

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;

}

我想要达到的结果

为什么错

#include<stdlib.h>

i你输入多少?只要超过"malloc success"字符串长度就没问题啊