动态分配内存malloc()函数和撤销内存free()函数
malloc函数原型:void *malloc(unsigned int size);用于申请一块指定大小的连续内存
free()函数原型:void free(void *);释放内存空间的函数
示例1:
动态分配一个char型的15个字节的空间,存入abcdef。
程序代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
*csdn学院
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:test1.c
*作者:小臣小仁
*完成日期:2020年3月15日
*/
int main()
{
char *p;
p = (char *)malloc(15);//分配15个字节cahr型的空间
strcpy(p,"abcdefg");//将abcdefg复制到空间
printf("%s\n",p);//输出
free(p);//释放申请的空间
return 0;
}
示例2:
动态分配一个结构体内存空间,用于存储学号,姓名以及一门英语成绩
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
*csdn学院
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:test.c
*作者:小臣小仁
*完成日期:2020年3月15日
*/
struct student
{
char num[20];//学号
char name[20];//姓名
float score;
};
int main()
{
struct student *p;
p = (struct student *)malloc(sizeof(struct student));//动态分配内存
strcpy(p->num,"1001");//将学号拷入
strcpy(p->name,"Tom");//将姓名考入
p->score = 88.5;//录入成绩
printf("学号%s 姓名%s 成绩%.2f",p->num,p->name,p->score);//输出
free(p);//释放申请空间
return 0;
}