程序设计基础徐明星w07-讨论-4-数组-指针-函数.ppt

程序设计基础徐明星w07-讨论-4-数组-指针-函数.ppt

二维数组的动态内存分配 二维(甚至更多维)数组(设为m*n)的动态分配过程,是分两步来完成的: 根据需要,分配第一维的空间。实际上是m个指针组成的动态数组。 分别为m个指针分配一维动态数组空间,每个都包含n个元素。这一步与前面所讲的“一维数组的动态内存分配”是一样的。 示例: * 0xffeedd e[0] e[1] e[2] e[3] 指针e指向连续4个内存单元的首地址, 这些内存单元中存放都是内存地址,类型为 int*。 所以,也可称e为:指向指针的指针。 通常,可以将之直观理解为特殊的“二维数组”变量。 ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? 动态分配的第一维空间 动态分配的第二维空间 e是占内存空间的指针变量,所以图示中用实线框表示。 e * 二维数组的动态内存释放 二维(甚至更多维)数组内存的动态释放过程,实际上是分配过程的严格逆过程: 先通过逐一枚举第一维各元素,将该维中的各元素(即第二维的一维动态数组)指向的内存单元释放掉。 释放第一维占用的内存空间。 示例: * 0xffeedd e[0] e[1] e[2] e[3] ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? 动态分配的第一维空间 动态分配的第二维空间 e是占内存空间的指针变量,所以图示中用实线框

文档评论(0)

1亿VIP精品文档

相关文档