動態定義陣列malloc--C語言
阿新 • • 發佈:2018-12-31
雞兔同籠問題 分析過程:
a就是陣列名,也是一個整型的指標,指向的是申請的這段空間的首地址。接下來就可以將使用者輸入的資料存放到這個陣列中。
剛做出來的只能輸入一個數字進行判斷;
後來仔細看了題目
發現題目要求輸入一系列陣列
就想著用迴圈,還是不符合題目要求
又想著用動態陣列,又看到了連結串列,以前學的連結串列,現在竟然忘的差不多了,回憶了一下,慢慢想起來了,
又再仔細看了一遍題目,蒼天啊,我審題怎麼這麼不嚴謹。。
簡單的題目做了好幾個小時,囧
題目已經明確規定了第一個輸入的數字是陣列的大小,我還在糾結連結串列,撲哧。。。
於是趕緊想了下如果定義動態陣列,用到了malloc。。。動態陣列的定義這裡也走了一些彎路。
這裡將動態定義陣列好好總結一下:
malloc 向系統申請分配指定size個位元組的記憶體空間,返回型別為void* ,void*表示未確定型別的指標。
使用舉例說明:
比如我想將使用者的輸入資料放到一個數組,因為我不知道使用者會輸入多少個數,所以我就不知道這個陣列定義多大為好
但是我可以讓使用者先輸入自己的數組裡面放多少個數,比如說n,然後再定義動態陣列
int n;
scanf("%d",&n);
int *a=(int *)malloc(n*sizeof(int));//定義動態陣列 相當於int a[n]
a就是陣列名,也是一個整型的指標,指向的是申請的這段空間的首地址。接下來就可以將使用者輸入的資料存放到這個陣列中。