本例的結構體如下
struct node{
int period; /* 期別 */
int length; /* 資料長度 */
int numbers[60]; /* 資料 */
int marks[60]; /* 標記 */
};
struct fnode{
char fname[32]; /* 資料名 */
struct node *data[100]; /* 資料長度 */
};
在 main() 中宣告
struct fnode tarData[5];
...
tarData[0].data = (struct node*) malloc(100 * sizeof(struct node));
tarData[1].data = (struct node*) malloc(100 * sizeof(struct node));
若大小超過 tarData[2] 就會發生上述錯誤了
Array size too large in function main
其發生原因為Turbo C 2.0 它是16位元編譯器,最大定址能力是 2^16 = 65536
超過就會產生錯誤了
解決辦法
在試過許多方法後,我的建議是換一個32位元編譯器 = ="
這裡我建議使用 Dev C++ 5.0
網址 http://www.bloodshed.net/dev/devcpp.html
下載 SourceForge
它的優點很多,它是免費軟體,window 介面,可以寫視窗及命令列程式,支援 C & C++。
最重要的是我會陸續寫操作方法 ^ ^
無痛上手,這也是選擇工具的重要因素之一。
沒有留言:
張貼留言
請提供您的寶貴意見 ;-)