用例:
背景:c语言数组长度固定很不方便,数组长度是存在栈空间的,栈空间大小在编译的时候是恒定不变的,所以,当申请的空间大小不确定时,要用堆空间
malloc函数作用:定义的i,变量指针*p都保存在main函数的栈空间中,通过malloc函数申请的空间会返回一个堆空间的首地址,把首地址存入p,知道了首地址,就可以通过strcpy函数向对应的空间存储字符数据
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
//malloc动态空间申请,书上
int i;//i代表要申请的空间大小
char *p;
scanf("%d",i);//输入要申请的空间大小
p=(char*)malloc(i);//用malloc动态申请堆空间
strcpy(p,"malloc successs");//将字符串复制到字符数组中
puts (p);//带空格的字符串要用puts输入
free(p);
printf("free success\n");
//return 0;
system("pause");
}
题目:输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最