矩陣的問題!希望各位大大能為我解惑! |
尚未結案
|
小禹
一般會員 發表:8 回覆:10 積分:3 註冊:2002-12-25 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
小禹 你好,
我要回答你的是 一個正式名稱為靜態陣列(static array) 的東西,
也就是你提出的問題的第一部份. 所謂的靜態陣列是其 陣列索引值
大小在程式執行前就必須決定與固定, 好處是效率比較好... 壞處呢
當然是彈性差一點了. 這是一個程式語言設計哲學上的問題, 因此,
跟是什麼語言有關係的. c/c++ 語言呢 是一個接一個 *.c/*.cpp 模
組的編譯的, 每個模組則從上到下掃過一遍來進行相關資料處理, 如
果在配置陣列大小時, 編譯器無法確切知道 所應預留之空間, 則編譯
過程將會中止; 因此, 如果 你使用一般變數來指定陣列大小, 那麼假
設你未指定大小, 或在另外一個模組才指定大小(或更複雜的狀況),
那麼編譯器 將得很困難才難釐清這個變數關係... 這顯然不是 c/c++
語言的設計哲學. 它的一些限制還有:
(1) 指定陣列大小的常數變數 須在同一模組
如在 a.cpp 中宣告這樣
const int nArySize = 16;
在 b.cpp 中這樣使用 也是不可以的
extern const int nArySize;
int z[nArySize];
(2) 指定陣列大小的常數變數 須在陣列定義宣告之前
如這樣 也是不可以的
extern const int nArySize;
int z[nArySize];
const int nArySize = 16; 最後, 解決這個問題的方法有很多種, 你可以根據 taishyang,
turboted 的建議來做, 請記得使用動態陣列後, 如果不再使用
也要記得釋放你配置的記憶空間
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |