#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i;
char *p;
scanf("%d",&i); //输入要申请的空间大小
p = (char*)malloc(i); //使用malloc函数 动态申请 堆空间
strcpy(p,"malloc success");
puts(p);
free(p); //free时 必须使用 malloc申请时返回的指针值,不能进行任何偏移
printf("free success \n");
return 0;
}
注意:
记得在使用strcpy函数时预留‘\0’的空间,例如上述代码 strcpy(p,"malloc success"); 因为malloc success所占空间为14,那么至少输入15才不会出现错误。