所以我打电话堆排序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