malloc函数和free函数

xiaoxiao2021-02-28  96

#include<stdio.h> #include<stdlib.h> #include<Windows.h> //malloc和free是c标准库中提供的两个函数,用以动态申请和释放内存 void main1() { //while (1) //{ // void *p = malloc(1024 * 1024 * 100); //空类型的指针,只保存空间地址即可 // Sleep(2000); // free(p); //根据地址释放内存空间 //} void *p = malloc(0xffffffff - 99); //分配一块指定大小的内存空间,生成一个空类型的首地址 if (p == NULL) //检测内存是否分配,为空值则为没有分配 { printf("内存空间不足,没有分配内存空间\n"); } system("pause"); } void main2() { int *p = (int *)malloc(sizeof(int)); //分配一个int类型元素大小(4字节)的内存空间 //生成一个空类型的首地址(空指针),强制转换为指向int类型数据的指针 //然后赋值给int类型的指针变量 *p = 100; printf("%d\n", *p); free(p); //free(p); //内存不能重复释放,p指向的内存空间或许被其他变量使用或者还未进行分配 system("pause"); } void main() { int num; scanf_s("%d", &num); int *p = malloc(sizeof(int)*num); for (int i = 0; i < num; i++) //按照数组的方式访问内存 { p[i] = i; printf("%d,%x\n", p[i], p + i); } free(p); system("pause"); }
转载请注明原文地址: https://www.6miu.com/read-79547.html

最新回复(0)