所以我打電話堆排序C.在陣列上使用C數組排序時
我堆排序函數指針的處理是這樣的:
void heapSort(int keys[], int numKeys){
...
int tmp[numKeys];
for(int i=0; i<numKeys; i++){
tmp[i] = maxVaue(h);
deleteMax(h);
}
*keys = tmp;
}
我試圖做的是將keys
更改爲指向新數組,因爲函數返回類型爲void。有沒有什麼辦法用指針來做到這一點,還是我只需要memcpy
這個數組?
數組是不可分配的,你不能在函數外部使用'tmp'(當函數返回時它超出範圍),所以你需要使用'memcpy()'。 – 2013-04-30 04:31:55
好的,謝謝。我只是想知道這是否可能。 – 2013-04-30 04:34:02