如何在 c 语言中动态分配二维数组

刷 OJ 的时候惊喜的发现,我竟然不会给二维数组动态分配内存。写了 n 年的代码了,竟然被这个难倒了!没想到好多年没搞算法,不仅脑袋不灵光了,连基础都丢了。真是自惭形秽!

方法一

先分配指针数组的内存,然后给数组中的每个 int *指针分配内存:

数组的表现形式:

方法二

使用一维指针模拟成二维指针,分配 row * col 个连续的元素,访问的时候模拟成二维指针访问:

参考

How to dynamically allocate a 2D array in C?

发表评论