想請教關於C語言的問題...

請問各位大大,在C語言裡頭,小弟將一維陣列的長度宣告成變數n,

之後如果改變這個變數n的值(加減乘除),是否會一起改變這個一維陣列原先的長度(n被做運算前的值)呢?

2011-11-29 21:46 發佈
文章關鍵字 問題 C語言
C 語言是要自己做記憶體管理的,
宣告陣列並不會自動 allocate 足夠的記憶體.
程式習慣不好, 很容易就敗在這裡, 抓了半天 Bug 抓不出來.
Tenarjoodie wrote:
請問各位大大,在C語...(恕刪)


陣列可以做(加減乘除)嗎?
一般都是用foe迴圈把值抓出來,在做運算吧?
先搞清楚,陣列是指記憶體空間
免責聲明:本人任何文章都是虛構的,請勿相信,如有雷同,純屬巧合。
如果你講的是傳統的C (標準C語言),陣列長度放進變數去 Compile不會過的。
Tenarjoodie wrote:
請問各位大大,在C語言裡頭,小弟將一維陣列的長度宣告成變數n,

之後如果改變這個變數n的值(加減乘除),是否會一起改變這個一維陣列原先的長度(n被做運算前的值)呢?

lD 2437 wrote:
陣列可以做(加減乘除...(恕刪)


大大您好像誤會小弟的問題了,小弟不是對陣列運算。

小弟指的是對陣列的「長度」做運算後,陣列的長度是否會因為運算而改變。
小弟學藝不精

但是陣列的維度(長度)是沒辦法透過運算直接改變的吧

若把陣列的維度宣告給變數

再重新宣告陣列的維度為運算完的變數,大既就可以了
...
1.C 不會,

2.若要可變長度, 請宣告為 指標

3.改變長度前, 請先用 MALLOC 配置記憶體,再把原資料搬過去.

4.若要隨心所欲, 請改用 C++.
您大概是想這樣吧?
舉個例子:
int length = 8;
int array[length];
length += 1;

最後陣列大小是否是會變成 9?

首先如 livinlavidaloca 大大說的, 陣列長度放進變數去 Compile不會過的。
放 macro 還可以.

另外陣列一但宣告長度,
就不能再變動size了.

如果你需要可變動的記憶體空間,
請善用 malloc 去分配空間.

內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?