1. 程式人生 > >動態定義陣列malloc--C語言

動態定義陣列malloc--C語言

雞兔同籠問題 分析過程:

剛做出來的只能輸入一個數字進行判斷;

後來仔細看了題目

發現題目要求輸入一系列陣列

就想著用迴圈,還是不符合題目要求

又想著用動態陣列,又看到了連結串列,以前學的連結串列,現在竟然忘的差不多了,回憶了一下,慢慢想起來了,

又再仔細看了一遍題目,蒼天啊,我審題怎麼這麼不嚴謹。。

簡單的題目做了好幾個小時,囧

題目已經明確規定了第一個輸入的數字是陣列的大小,我還在糾結連結串列,撲哧。。。

於是趕緊想了下如果定義動態陣列,用到了malloc。。。動態陣列的定義這裡也走了一些彎路。

這裡將動態定義陣列好好總結一下:

malloc 向系統申請分配指定size個位元組的記憶體空間,返回型別為void* ,void*表示未確定型別的指標。

使用舉例說明:

比如我想將使用者的輸入資料放到一個數組,因為我不知道使用者會輸入多少個數,所以我就不知道這個陣列定義多大為好

但是我可以讓使用者先輸入自己的數組裡面放多少個數,比如說n,然後再定義動態陣列

    int n;
    scanf("%d",&n);
    int *a=(int *)malloc(n*sizeof(int));//定義動態陣列 相當於int a[n]

a就是陣列名,也是一個整型的指標,指向的是申請的這段空間的首地址。接下來就可以將使用者輸入的資料存放到這個陣列中。