C语言-动态创建二维数组
生活随笔
收集整理的這篇文章主要介紹了
C语言-动态创建二维数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 前言
- 2 動態(tài)創(chuàng)建的實現方法
- 2.1 方法1(適用于二級指針傳遞)
- 2.2 方法2(模擬C語言數組的儲存方式)
1 前言
參照我之前的一篇文章 二維數組做函數的參數
文章中提到,當我們想向函數傳遞二維數組的時候,是不可以用二級指針作為形參的。
正確的方法是用數組指針作為形參,詳細內容點擊上面的鏈接
在C語言中,想把 int arr[2][3] 這樣的二維數組傳遞到函數 void f(int **arr) 是不可能的
那么有沒有辦法可以實現呢?
答案是可以,但是需要用到另一種方式,就是動態(tài)創(chuàng)建二維數組
2 動態(tài)創(chuàng)建的實現方法
我們知道,在C語言中,創(chuàng)建一個數組,1維也好N維也好,都是在內存中線性存儲的
例如:int arr[2][5]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(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語言數組的儲存方式)
動態(tài)分配的思路是:
總結
以上是生活随笔為你收集整理的C语言-动态创建二维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是补码,怎么求补码
- 下一篇: C语言-数组名真的不是指针