※ 引述《realturner (rt)》之銘言:
: 題目述敘有更新,請同學去查看
: 另外最後一筆測資因為檔案很多(~30000)
: 如果用 strcpy 會因為空間不夠而無法執行
: 產生「使用到不該用的記憶體」的錯誤
: 其實只要記指標就好了
: 同樣地,用完一個檔記得就要關
: 因為系統會限制同時能開的檔案數
: 最後,如果你都做了,而且用了 qsort 還是超時的話
: 請多丟幾次,第二次通常會比較快
各位強者好 在下做這次的homework時碰上一個問題
雖然已經靠估狗解決 卻還是不知道為什麼會這樣 因此上來向各位請教
先說我是用 DEV C
我本來的compare函式長這樣:
int compare(void *data1,void *data2)
在編譯的時候 出現如下的錯誤訊息:
passing argument 4 of ‘qsort’ from incompatible pointer type
我為此百思不得其解 因為這和老師講義上面的形式明明一模一樣
後來辜狗了一下 看到一堆英文中 好像說要加const
於是我就把函式改成這個樣子:
int compare(const void *data1,const void *data2)
然後就可以過了......
但是我完全不知道為什麼要加......
我把老師講義的程式複製到DEV C
他沒有加const也照樣可以編譯可以跑
但是我自己的就得加
請問那個錯誤訊息和const的關係到底是甚麼?
感謝各位大大~