动态分配内存

76 阅读1分钟

动态分配内存(C99之前)

int *a=(int *)malloc(n*sizeof(int));

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int number;//要申请的内存空需要存放多少个数据
    int *a;//存储申请到的内存空间
    int i;//循环变量
    printf("请输入数量:");
    scanf("%d",&number);
    //int a[number];
    a=(int *)malloc(number*sizeof(int));//将申请到的内存空间交给指针a
    for(i=0;i<number;i++){
        scanf("%d",&a[i]);
    }//将a指针指向的内存空间进行赋值
    for(i=number-1;i>=0;i--){
        printf("%d",a[i]);
    }逆序输出a指针指向的内存空间中的值
    free(a);//返回必须返回申请来的空间的首地址
    return 0;
}//如果申请失败则会返回0或NULL

很重要!!!:malloc之后千万千万记得去free,且不要重复free