成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C 語言系列教程:使用 malloc() 函數創建二維數組

開發 后端
在這篇文章中,我們將學習在 C 語言編程中使用 malloc() 函數創建一個二維數組。

malloc() 函數在 C 語言編程中用于將數據存儲在堆中,堆是動態內存存儲。多用于數組的動態聲明,也可用于二維數組的創建。二維數組用于繪制具有列和行的表格形式的值。

在這篇文章中,我們將學習在 C 語言編程中使用 malloc() 函數創建一個二維數組。

什么是 C 語言編程中的 malloc() 函數

在一些特定的程序中,我們常常無法預測數組的大小。如果我們自己將值分配給數組,那么它在執行期間無法更改。這會產生問題,要么數組的內存變低,要么數組占用更少的空間浪費內存,因此為避免這種情況,建議動態分配數組。

在 C 語言編程中,對于動態內存分配,使用了不同的函數。其中之一是 malloc() 函數;它向堆發送特定內存塊的請求,如果堆有空間,它通過將請求的內存塊分配給 malloc() 來響應。

malloc() 會根據執行程序的需要占用分配的內存塊空間,執行成功后,可以使用 free() 函數釋放該空間。

如何在 C 語言編程中使用 malloc() 函數創建二維數組

在創建之前,請考慮下圖以更好地理解二維數組的工作原理。

上圖中,我們可以理解,在一個二維數組中,先將元素固定在對應的行被填充后的列的第一個框中,然后是列的第二行,一直到整個數組被填充,就像第一個元素將被放置在 x[0][0],然后是 x[0][1],然后是 [0][2],然后是 x[0][1],[1][ 0],以此類推。

我們將考慮以下在 C 編程中使用 malloc() 創建二維數組的基本示例。我們創建了一個文本文件 linuxmi.c 并在其中鍵入以下腳本:

#include <stdio.h>
#include <stdlib.h>
int main() {
int row = 5, col = 4;
int *a = (int *)malloc(row * col * sizeof(int));
int i, j;
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)
*(a + i*col + j) = i + j;
printf("數組元素是:\n");
for (i = 0; i < row; i++) {
for (j = 0; j < col; j++) {
printf("%d ", *(a + i*col + j));
}
printf("\n");
}
free(a);
return 0;
}

要編譯上述程序,我們將使用 GCC 編譯器:

linuxmi@linuxmi:~/www.linuxmi.com$ gcc linuxmi.c -o linuxmi

執行linuxmi,這是linuxmi.c的編譯文件,顯示輸出:

nuxmi@linuxmi:~/www.linuxmi.com$ ./linuxmi

如下圖:

在上面的代碼中,我們已經包含了 stdlib.h(用于動態內存分配)和 stdio.h(用于輸入和輸出)的庫,然后我們聲明了變量 row、column、i 和 j。聲明后,我們調用 malloc() 根據“行”和“列”的值分配內存。分配內存后,我們只需使用兩個嵌套循環將值保存在數組中,然后在嵌套循環中使用 printf() 顯示值。最后,我們使用free()清空了malloc()在堆上分配的占用空間。

結論

二維數組與一維數組類似,一維數組和二維數組的唯一區別是;二維數組以表格形式存儲數據,一維數組以行的形式存儲數據。數組是數據結構的基礎,它們可以存儲大量相同數據類型的數據。在本文中,我們通過調用 malloc() 函數解釋了在動態內存中創建二維數組。

責任編輯:龐桂玉 來源: Linux公社
相關推薦

2009-09-02 10:23:52

C#動態二維數組

2009-11-16 17:41:41

PHP二維數組

2009-08-07 10:12:09

C#二維數組

2010-01-14 17:58:41

C++語言

2009-12-18 15:11:05

Ruby輸出二維數組

2009-09-18 11:33:37

C#二維數組初始化

2024-04-28 09:40:28

2009-11-17 16:09:04

PHP二維數組排序

2009-09-16 17:29:10

Linq查詢二維數組

2015-11-09 13:03:47

JavaServlet創建二維碼

2010-02-04 16:26:54

C++二維數組new

2009-11-16 17:07:58

PHP二維數組

2010-07-19 13:06:13

Perl二維數組

2021-01-15 08:19:26

二維數組LeetCode

2010-03-16 15:57:26

Python二維數組

2009-08-20 11:38:15

C#二維數組

2015-01-14 09:46:52

Google API

2010-07-13 15:15:49

Perl二維數組

2010-03-05 14:05:02

Python二維數組

2010-02-06 10:24:48

C++二維數組初始化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合区 | 国产1区2区在线观看 | 国产一区二区三区 | 亚洲国产欧美在线 | www国产亚洲精品 | av黄色免费| 精品国产一区二区三区免费 | 成人欧美一区二区三区在线播放 | 成人在线播放 | 精品视频一区二区三区 | 国产精品免费在线 | 久久福利电影 | 免费看黄视频网站 | 精品欧美色视频网站在线观看 | 国产精品国产成人国产三级 | 国产精品久久久久久久久久久久久 | 国产成人99久久亚洲综合精品 | 国产区免费视频 | 99精品久久久久 | 日本福利视频免费观看 | 国产精品久久久久久久久大全 | 色久五月 | 日韩伦理一区二区 | 99精品国产一区二区三区 | 一区中文字幕 | 亚洲精品乱码久久久久v最新版 | 精品伊人久久 | 日韩精品一区二区三区中文在线 | 日韩精品一区二区三区老鸭窝 | 精品久久久久久久 | 午夜久久 | 欧美在线一区二区视频 | 精品一区av | 一区二区精品 | 2018天天干天天操 | 毛色毛片免费看 | 久久久精品一区二区三区 | 亚洲精品久久 | 综合色影院 | 91亚洲免费 | 九九九久久国产免费 |