C語言中數組的另一種常用寫法(數組大小可變!!!)


在 C 和 C++ 中,數組在聲明過程中,數組名稱為 const 指針,不許修改。且數組的大小在聲明時被寫死,非常不方便。

C語言中常用下面代碼替代指針。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
    int n;
    scanf_s("%d", &n);

    // 使用指針代替數組,可實現一個數組的大小可變(使用時最好用const指針)
    // 最好判斷一下是否內存申請成功,即判斷p是否為NULL
    int* p = (int*) malloc(sizeof(int) * n);

    // 使用數組
    if (NULL != p) {
        p[0] = 100;
        printf("%d\n", p[0]);
    }
    else {
        printf("No.");
    }

    // 使用后銷毀那段內存(保證安全)
    free(p);
}

 

雖然上述使用的 p 指針來代替數組有安全隱患(主要體現在兩個方面:p指針非只讀屬性,p指針容易數組越界)。但該方法創建的數組的靈活性也大大增強。

(能力越大責任也就越大!!小心使用!!)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM