动态分配

注意动态分配地址不连续问题

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int **a;
    a=(int**)malloc(10*sizeof(int*));
    int i,j;
    for(i=0;i<10;i++)
    {
        a[i]=(int*)malloc(10*sizeof(int));
    }
    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {
           a[i][j]=0;
        }
    }
    printf("%p\n%p\n%p\n%p\n%p",&a,a,&a[0],a[0],&a[0][0]);
    for(i=0;i<10;i++){
        free(a[i]);
        a[i]=NULL;

    }
    free(a);
    a=NULL;
    return 0;
}

 上耿大爷的内存分析

猜你喜欢

转载自www.cnblogs.com/calm-blogme/p/11982273.html