C语言-动态创建二维数组
生活随笔
收集整理的這篇文章主要介紹了
C语言-动态创建二维数组
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1 前言
- 2 動態(tài)創(chuàng)建的實現(xiàn)方法
- 2.1 方法1(適用于二級指針傳遞)
- 2.2 方法2(模擬C語言數(shù)組的儲存方式)
1 前言
參照我之前的一篇文章 二維數(shù)組做函數(shù)的參數(shù)
文章中提到,當(dāng)我們想向函數(shù)傳遞二維數(shù)組的時候,是不可以用二級指針作為形參的。
正確的方法是用數(shù)組指針作為形參,詳細(xì)內(nèi)容點擊上面的鏈接
在C語言中,想把 int arr[2][3] 這樣的二維數(shù)組傳遞到函數(shù) void f(int **arr) 是不可能的
那么有沒有辦法可以實現(xiàn)呢?
答案是可以,但是需要用到另一種方式,就是動態(tài)創(chuàng)建二維數(shù)組
2 動態(tài)創(chuàng)建的實現(xiàn)方法
我們知道,在C語言中,創(chuàng)建一個數(shù)組,1維也好N維也好,都是在內(nèi)存中線性存儲的
例如:int arr[2][5]
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-JnIouwMh-1581006898069)(https://s2.ax1x.com/2019/04/25/EeXViD.png)]
C語言的聲明語句為:
int arr[ROW][COLUMN];2.1 方法1(適用于二級指針傳遞)
動態(tài)分配的思路是:
注:需要注意第一行的 malloc 和第三行的 malloc 兩者的區(qū)別
2.2 方法2(模擬C語言數(shù)組的儲存方式)
動態(tài)分配的思路是:
總結(jié)
以上是生活随笔為你收集整理的C语言-动态创建二维数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是补码,怎么求补码
- 下一篇: C语言-数组名真的不是指针