#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"的长度?