moc 发表于 2018-8-18 13:09:26

013-指针数组和两种二维数组的内存模型

结合前面的内存四区图画出下面程序的内存模型:
#include "stdlib.h"
#include "stdio.h"
#include "string.h"

void main()
{
        int i = 0;

        //指针数组
        char *p1[] = { "123", "456", "789" };
        //二维数组
        char p2 = { "123", "456", "789" };

        //手工二维数组
        char **p3 = (char**)malloc(3 * sizeof(char *));
        for (i = 0; i < 3; i++)
        {
                p3 = (char *)malloc(10 * sizeof(char));
                sprintf(p3, "%d%d%d", i);
        }
        system("pause");

}

内存模型如下:
页: [1]
查看完整版本: 013-指针数组和两种二维数组的内存模型