c - 在 C 中对数组进行排序时处理指针

标签 c pointers sorting

<分区>

所以我在 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()

关于c - 在 C 中对数组进行排序时处理指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16292162/

相关文章:

c - 我希望能够在 c 中打印堆栈跟踪 java 样式

c++ - 现代处理器(如i7)会在遍历指针列表时跟随指针并预取其数据吗?

c - 难以理解使用链表实现图的方法

c - 如何增加指针地址和指针的值?

c - 表示给定 LSB/V 的正弦波

c - 二维数组,打印索引。?

C++ 为什么我的指针选择排序中存在段错误?

algorithm - 计算立方体的横截面

c - 头文件无法工作 - 对 `method' 的 undefined reference

python - 对哈希表进行排序并同时打印键和值