亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 如何在C中動態分配二維數組

如何在C中動態分配二維數組 時間:2018-09-29      來源:未知

在C語言中如何動態申請連續的二維數組。可以采用多申請一些指針,然后這一些指針分別指向后面數據區中對應的位置,如一個3*4的int類型數組,我們先申請大小為sizeof(int*) * 3 + 3 * 4 * sizeof(int)的一維數組設為arr。然后arr[0]存放指向arr + sizeof(int*) * 3這個位置的指針,arr[1]存放指向arr + sizeof(int*) * 3 + 4 * sizeof(int)這個位置的指針, arr[2]存放指向arr + sizeof(int*) * 3 + 2 * 4 * sizeof(int)這個位置的指針。

即先通過malloc申請所有要使用的空間使之連續,再建立其之間聯系形成二維數組。

1. //C語言中動態的申請二維數組 malloc free  

2. #include <stdio.h>  

3. #include <stdlib.h>  

4. #include <string.h>  

5. //動態申請二維數組  

6. typedef int T  

7. T** malloc_Array2D(int row, int col)  

8. {  

9.     int size = sizeof(T);  

10.     int point_size = sizeof(T*);  

11.     //先申請內存,其中point_size * row表示存放row個行指針  

12.     T **arr = (T **) malloc(point_size * row + size * row * col);  

13.     if (arr != NULL)  

14.     {     

15.         memset(arr, 0, point_size * row + size * row * col);  

16.         T *head = (T*)((int)arr + point_size * row);  

17.         while (row--)  

18.             arr[row] = (T*)((int)head + row * col * size);  

19.     }  

20.     return (T**)arr;  

21. }  

22. //釋放二維數組  

23. void free_Aarray2D(void **arr)  

24. {  

25.     if (arr != NULL)  

26.         free(arr);  

27. }  

28. int main()  

29. {  

30.     printf("  C語言中動態的申請二維數組 malloc free\n");    

31.     printf(" -- by MoreWindows( //blog.csdn.net/MoreWindows ) --\n\n");  

32.

33.     printf("請輸入行列(以空格分開): ");  

34.     int nRow, nCol;  

35.     scanf("%d %d", &nRow, &nCol);  

36.

37.     //動態申請連續的二維數組  

38.     T **p = malloc_Array2D (nRow, nCol);  

39.

40.     //為二維數組賦值     

41.     int i, j;     

42.     for (i = 0; i < nRow; i++)  

43.         for (j = 0; j < nCol; j++)  

44.             p[i][j] = i + j;  

45.

46.     //輸出二維數組      

47.     for (i = 0; i < nRow; i++)  

48.     {  

49.         for (j = 0; j < nCol; j++)  

50.             printf("%4d ", p[i][j]);  

51.         putchar('\n');  

52.     }  

53.

54.     free_Aarray2D((void**)p);  

55.     return 0;  

56.

上一篇:Keepalive機制

下一篇:指針數組與數組指針

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 天天色天天综合网 | 韩国三级a | 久久99精品这里精品3 | 99精品热线在线观看免费视频 | 欧美三级真做在线观看 | 国产精品搭讪系列在线观看 | xxxx日日摸夜夜添夜夜添视频 | 免费看av在线网站网址 | 国内自拍成人网在线视频 | 青青青青爽极品在线视频 | 噜噜噜狠狠狠 | 欧美一区二区在线视频 | 国产欧美一区二区三区视频在线观看 | 欧美性xxxxbbbb| 黄色片久久 | www.com色| 欧美在线资源 | 日本一区三区 | 日本免费视屏 | 免费看行情的软件 | 日本视频一区二区三区 | 伊人精品在线观看 | 在线观看色视频 | 欧美黄色录像 | 久久精品视频日本 | 日韩一区二区三区视频在线观看 | 国产在线播 | 亚洲天天在线 | 国产美女白丝袜精品_a不卡 | 久久这里只有精品久久 | 国产精品久久影院 | 伦理片我的性老师 | 日本视频一区在线观看免费 | 免费在线不卡视频 | 久久91精品综合国产首页 | 欧美日韩一区二区三区视频播 | 99热这里都是国产精品 | 亚洲经典三级 | 日本黄色高清网站 | 欧美四区 | jizz18日本 |