c語言的難題.... 請高手教路(20分)

2008-12-13 4:00 am
請問有咩方法可以解決set死數值既問題...

即係global variables 果到比如 int x[100][100]

但係我個x既數值會變, 點先可以整到佢識根據我既要求去變呢

我唔想set死佢做特定既數值,咁可以用咩方法呢?

回答 (2)

2008-12-13 7:49 pm
✔ 最佳答案
If you are writing C++, you can use
const int VAL=1354;
to define a constant of type int at compile time.
Subsequently, you can assign this value to x[23][52], if you wish.
However, you cannot stop the array x[][] from changing values.
If you do not know how many you need, you can enter the value as a variable,
for example:
int n1,n2;
scanf("%d%d",&n1,&n2);
then use malloc to allocate the arrays.
If you need more details, PM me for what you need (in Chinese traditional).
2008-12-14 2:06 am
我估計您是想用一個 2d array 來儲存一些資料,但要讀取檔案完成後才會知道 array 的大小。

這類問題,通常會用 pointer + malloc() function 的方法,即是建造一個 dynamic data structure, e.g. linked list 來儲存從檔案讀取的、不知個數為多少的資料。若您認為使用 array 方便處理資料的話,可以在檔案完成讀取、 data structure 建成、資料個數已知後,才用 malloc() 設定一個 dynamic array ,然後把 data structure 中的資料 copy 到 array 後才處理。

另一個方法是,先從檔案讀入所有資料,得知資料的個數後才 malloc() 一個 array ,然後再從頭由檔案讀取資料。當檔案資料很多的話,這方法的處理時間有可能會達前述方法的一倍(主要是讀取檔案的時間)。不過用的記憶體卻又可能會少一半以上。

C 語言中最難的,可能就是如何使用 pointer + malloc()!

2008-12-14 14:47:41 補充:
可參考以下網頁:
http://en.wikipedia.org/wiki/Linked_list

當中 "Language support" 一段內有 C 語言的例子。


收錄日期: 2021-04-13 16:18:41
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20081212000051KK01348

檢視 Wayback Machine 備份