中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

C語言——動態(tài)數(shù)組的創(chuàng)建和使用-創(chuàng)新互聯(lián)

C語言文章更新目錄

C語言學(xué)習(xí)資源匯總,史上最全面總結(jié),沒有之一
C/C++學(xué)習(xí)資源(百度云盤鏈接)
計算機二級資料(過級專用)
C語言學(xué)習(xí)路線(從入門到實戰(zhàn))
編寫C語言程序的7個步驟和編程機制
C語言基礎(chǔ)-第一個C程序
C語言基礎(chǔ)-簡單程序分析
VS2019編寫簡單的C程序示例
簡單示例,VS2019調(diào)試C語言程序
C語言基礎(chǔ)-基本算法
C語言基礎(chǔ)-數(shù)據(jù)類型
C語言中的輸入輸出函數(shù)
C語言流程控制語句
C語言數(shù)組——一維數(shù)組
C語言數(shù)組——二維數(shù)組
C語言數(shù)組——字符數(shù)組
C語言中常用的6個字符串處理函數(shù)
精心收集了60個C語言項目源碼,分享給大家
C語言核心技術(shù)——函數(shù)
C代碼是怎樣跑起來的?
C語言實現(xiàn)字符串的加密和解密
C語言——文件的基本操作
使用C語言鏈表創(chuàng)建學(xué)生信息并且將信息打印輸出
圖解C語言冒泡排序算法,含代碼分析
實例分析C語言中strlen和sizeof的區(qū)別
開發(fā)C語言的3款神器,VS2019、VScode和IntelliJ Clion
動圖圖解C語言選擇排序算法,含代碼分析
動圖圖解C語言插入排序算法,含代碼分析
C語言指針數(shù)組和數(shù)組指針詳解
5分鐘搞懂C語言中的傳值和傳址

“真誠服務(wù),讓網(wǎng)絡(luò)創(chuàng)造價值”是我們的服務(wù)理念,創(chuàng)新互聯(lián)公司團隊十多年如一日始終堅持在網(wǎng)站建設(shè)領(lǐng)域,為客戶提供優(yōu)質(zhì)服。不管你處于什么行業(yè),助你輕松跨入“互聯(lián)網(wǎng)+”時代,PC網(wǎng)站+手機網(wǎng)站+公眾號+微信小程序定制開發(fā)。

C語言實例專欄(持續(xù)更新中…)

什么是動態(tài)數(shù)組?

動態(tài)數(shù)組是相對于靜態(tài)數(shù)組而言的,從“動”字可以看出它的靈活性。靜態(tài)數(shù)組的長度是預(yù)先定義好的,在整個程序中,一旦給定數(shù)組大小后就無法改變。而動態(tài)數(shù)組則不然,它可以根據(jù)程序需要重新指定數(shù)組大小。動態(tài)數(shù)組的內(nèi)存空間是由堆動態(tài)分配的,通過執(zhí)行代碼為其分配存儲空間,只有程序執(zhí)行到分配語句時,才為其分配存儲空間。

動態(tài)數(shù)組和一般數(shù)組(靜態(tài)數(shù)組)的區(qū)別
  • 靜態(tài)數(shù)組:創(chuàng)建非常方便,使用完也無需釋放,引用起來也簡單,但是創(chuàng)建后無法改變數(shù)組大小是其致命的弱點。
  • 動態(tài)數(shù)組:創(chuàng)建麻煩,使用完必須由程序員自己釋放,否則會引起內(nèi)存泄露,但是其使用非常靈活,能根據(jù)程序需要動態(tài)分配大小。
動態(tài)數(shù)組的創(chuàng)建和使用

在創(chuàng)建動態(tài)數(shù)組的過程中要遵循一個原則,那就是從外層向里層逐層創(chuàng)建,從里層向外層逐層釋放。如果要創(chuàng)建一個N維的動態(tài)數(shù)組,那么要從第一維開始創(chuàng)建,直到第N維為止;而釋放時與創(chuàng)建時相反,即從第N維開始釋放,直到第一維為止。下面我們一起來看看一維動態(tài)數(shù)組和二維動態(tài)數(shù)組。

一維動態(tài)數(shù)組
  • 創(chuàng)建形式

類型說明符* 數(shù)組名 = (類型說明符*)malloc(數(shù)組長度*sizeof(類型說明符))

  • 實例
//
// Created by 沖哥 on 2022/11/26.
// 微信關(guān)注【C語言中文社區(qū)】,免費領(lǐng)取500G學(xué)習(xí)資料
//
#include#includeint main() {int n; //用來接收要創(chuàng)建的一維動態(tài)數(shù)組的長度
    int *arr;
    printf("請輸入所要創(chuàng)建的一維動態(tài)數(shù)組的長度:");
    scanf("%d", &n);
    if ((arr = (int *) malloc(sizeof(int) * n)) == NULL) {//使用malloc來動態(tài)分配內(nèi)存
        printf("分配內(nèi)存空間失敗!\n");//如果內(nèi)存分配失敗,報錯異常退出
        return -1;
    }
    for (int i = 0; i< n; i++) {//通過循環(huán)給數(shù)組賦值并在控制臺進行打印
        arr[i] = i + 1;
        printf("%d\t", arr[i]);
    }
    free(arr); //釋放內(nèi)存空間

    return 0;
}
  • 運行結(jié)果
請輸入所要創(chuàng)建的一維動態(tài)數(shù)組的長度:8
1    2       3       4       5       6       7       8
二維動態(tài)數(shù)組
  • 創(chuàng)建形式
類型說明符** 數(shù)組名 = (類型說明符**)malloc(第一維長度*sizeof(類型說明符*))
for(int  i=0;i<第一維長度;i++){數(shù)組名[i]=(類型說明符*)malloc(第二維長度*sizeof(類型說明符))
}
  • 實例
//
// Created by 沖哥 on 2022/11/26.
// 微信關(guān)注【C語言中文社區(qū)】,免費領(lǐng)取500G學(xué)習(xí)資料
//
#include#includeint main() {int n1, n2;
    int **arr;
    printf("請輸入所要創(chuàng)建的動態(tài)數(shù)組的第一維長度:");
    scanf("%d", &n1);
    printf("請輸入所要創(chuàng)建的動態(tài)數(shù)組的第二維長度:");
    scanf("%d", &n2);

    if ((arr = (int **) malloc(n1 * sizeof(int *))) == NULL)//使用malloc給第一維分配內(nèi)存
    {printf("分配內(nèi)存空間失敗!\n");//如果內(nèi)存分配失敗,報錯異常退出
        return -1;
    }

    for (int i = 0; i< n1; i++) {if ((arr[i] = (int *) malloc(n2 * sizeof(int))) == NULL)//使用malloc給第二維分配內(nèi)存
        {printf("分配內(nèi)存空間失敗!\n");//如果內(nèi)存分配失敗,報錯異常退出
            return -1;
        }
    }
    for (int i = 0; i< n1; i++) {//通過循環(huán)給數(shù)組賦值并在控制臺進行打印
        for (int j = 0; j< n2; j++) {arr[i][j] = i * n2 + j + 1;
            printf("%d\t", arr[i][j]);
        }
        printf("\n");
    }
    for (int i = 0; i< n1; i++) {free(arr[i]);//釋放第二維
    }
    free(arr);//釋放第一維

    return 0;
}
  • 運行結(jié)果
請輸入所要創(chuàng)建的動態(tài)數(shù)組的第一維長度:5
請輸入所要創(chuàng)建的動態(tài)數(shù)組的第二維長度:4
1       2       3       4
5       6       7       8
9       10      11      12
13      14      15      16
17      18      19      20

代碼中的注釋已經(jīng)寫的很詳細了,如果還有什么疑問歡迎評論區(qū)留言。
如果您覺得本篇文章對您有幫助,請點贊,轉(zhuǎn)發(fā)給更多的人。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站名稱:C語言——動態(tài)數(shù)組的創(chuàng)建和使用-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://www.rwnh.cn/article8/epjip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣域名注冊、微信小程序定制開發(fā)、電子商務(wù)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
桐庐县| 苍南县| 裕民县| 宜兴市| 长岛县| 延川县| 余干县| 无棣县| 鹿邑县| 大荔县| 白河县| 威宁| 攀枝花市| 辽宁省| 库尔勒市| 双流县| 泾川县| 安义县| 阳朔县| 若尔盖县| 河北区| 达拉特旗| 百色市| 阿巴嘎旗| 新民市| 樟树市| 长海县| 静海县| 许昌县| 临澧县| 玉门市| 突泉县| 白银市| 临安市| 嘉荫县| 肃南| 高雄市| 敦化市| 宁德市| 靖边县| 丹阳市|