动态内存分配malloc
#include <stdio.h>
#include <stdlib.h> // 使用malloc需要引入
// 常见的问题
// 1、malloc空间后没有free
// 2、free过了再去free
// 3、地址变过了,直接去free,例如:
// a = (int*)malloc(4 * sizeof(int)); a++; free(a);会报错
int main(int argc, char **argv) {
int *a;
// malloc单位是字节,返回的是void*,但是a是int,所以做强制类型转换,
a = (int*)malloc(4 * sizeof(int));
// 这样就可以像使用数组一样使用变量a
a[0] = 0;
a[1] = 1;
a[2] = 2;
// 将动态分配的内存还给系统
free(a);
return 0;
}