有关在matlab中混合运行c语言的kdtree 会导致Matlab系统崩溃的措施

在matlab中混合运行c语言的kdtree 会导致Matlab系统崩溃

C语言实现的kdtree在输入到到matlab后编程会有系统错误,即完全崩溃;对于提供的最小kdtree_delete_demo,Matlab已经崩溃。

提示信息如下:
错误使用 kdtree_nearest_neighbor
vararg{1} must be a [Nxk] matrix of N points in k dimensions

问题来源

在win64上长时无法存储指针。通过更改此行以使用size_t或intptr_t并修复用于创建matptr的相应代码,该代码可能会起作用,但很可能还有其他问题。

解决措施

将因此所有出现的long都需要用intptr_t代替。这需要在文件中完成:
KDTree.h
kdtree_ball_query.cpp
kdtree_build.cpp
kdtree_io_from_mat.cpp
kdtree_k_neares_neighbors.cpp
kdtree_nearest_neighbor.cpp
kdtree_range_query.cpp

举例


long pointer1 = (long) pointer0[0];
改为
intptr_t pointer1 = (intptr_t) pointer0[0];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值