c - KD 树 - 理解指针的困难

标签 c pointers tree

我正在阅读 C 中的 kd 树实现。这是其中的一些部分。问题出在 findmedian 函数中。我不明白

的实现
*md = start +(end-start)/2;

...... -> 其他不相关的代码行

struct kd_node_t
{
    double x[3];
    struct kd_node_t *left, *right;
};
struct kd_node_t* findmedian(struct kd_node_t *start, struct kd_node_t *end, int idx)
{
......
struct kd_node_t *p, *store, *md = start + (end - start) / 2;
......
}

最佳答案

嗯,这里实现的只是“两个指针之间的中间位置”startend。如果实现注意内存中的这个位置有一个有意义的值(可能是中位数)那么你很幸运,否则你会得到垃圾......

关于c - KD 树 - 理解指针的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175338/

相关文章:

c - select()中的问题并最终发送信号SIGUSR1(C语言)

C 释放一个由其他指针指向的实例

c - 为什么 {typedef int* PTR;const PTR p=#} 不等于 "const int* p=&num"而等于 "int *const p=&num"?

c++ - 我应该如何在 C++ 中表示继承对象树?

C 代码陷入无限的 do-while 循环

c - 在 C 应用程序中隐藏 Lua 源代码

Haskell 布局树

java - 从 swt 树中删除边框

c++ - 如何使用指针打印数组?

c++ - C++ 中对象/类的动态数组