malloc 申请动态内存空间
free 释放动态内存空间
callioc 申请并初始化一系列内存空间
reallloc 重新分配内存空间
void *malloc(size_t size);
//void *malloc(size_t size); #include<iostream> #include<stdlib.h> using namespace std; int main(){ int *ptr; ptr=(int *)malloc(sizeof(int)); if(ptr==NULL){ printf("分配内存失败"); exit(1); } printf("请输入一个整数"); scanf("%d",ptr); printf("%d",*ptr); return 0; }
void free(void *ptr);
内存泄漏:
申请的空间没有释放:
#include <stdio.h> #include <stdlib.h> int main(void) { while (1) { malloc(1024); } return 0; }
丢失内存块地址
#include <stdio.h> #include <stdlib.h> int main() { int *ptr; int num = 123; ptr = (int *)malloc(sizeof(int)); if (ptr == NULL) { printf("鍒嗛厤鍐呭瓨澶辫触锛乗n"); exit(1); } printf("璇疯緭鍏ヤ竴涓暣鏁帮細"); scanf("%d", ptr); printf("浣犺緭鍏ョ殑鏁存暟鏄細%d\n", *ptr); ptr = # printf("浣犺緭鍏ョ殑鏁存暟鏄細%d\n", *ptr); free(ptr); return 0; }
原文:https://www.cnblogs.com/helloworld2019/p/11161005.html