2011-01-20 65 views
1

超級快速問題,我最初的想法是這不起作用,但後來我想,爲什麼不放棄它。現在我認爲它不會工作,因爲結果數組看起來沒有正確形成?我的問題,這個工作?動態大小數組?

NSUInteger numPoints = [[[self dataModel] locationFake] count]; 
CLLocationCoordinate2D points[numPoints]; 
+0

我的問題:爲什麼不試試呢? – vikingosegundo 2011-01-20 17:53:20

+0

我確實嘗試過並且無法使用它,然後我在其他一些在線代碼中發現了它,這讓我開始思考。我非常肯定它不會工作,一半預計會得到一個編譯錯誤。但就像我說的在線例子讓我想... – fuzzygoat 2011-01-20 17:57:42

回答

4

不,它不會工作,因爲points[]數組需要靜態調整大小。也就是說,編譯器需要知道該數組的大小,但直到運行時纔可能知道它。

如果將其更改爲:

CLLocationCoordinate2D *points = malloc(numPoints * sizeof(CLLocationCoordinate2D)); 

這應該工作。當你完成後不要忘記free()