我尝试在夜间频道上使用kmeans crate:
use kmeans::*;
fn main() {
let (sample_cnt, sample_dims, k, max_iter) = (20000, 200, 4, 2500);
// Generate some random data
let mut samples = vec![0.0f64; sample_cnt * sample_dims];
samples.iter_mut().for_each(|v| *v = rand::random());
// Calculate kmeans, using kmean++ as initialization-method
let kmean = KMeans::new(samples, sample_cnt, sample_dims);
}
字符串
然而,当初始化KMeans
结构时,我得到一个运行时错误:
error: process didn't exit successfully: `target\debug\my_kmeans.exe` (exit code: 0xc0000374, STATUS_HEAP_CORRUPTION)
型
我不确定这是我的环境/代码中的错误,还是板条箱中的错误,以及是否应该创建一个问题。特别是在kmeans crate中,导致此错误的可能原因是什么?
1条答案
按热度按时间s2j5cfk01#
我不确定这是我的环境/代码中的错误还是板条箱中的bug
您没有编写任何
unsafe
代码。因此,堆损坏**不可能是您的代码的错误。**可能是:kmeans
中的不安全代码中的一个bug。请注意,即使您向
kmeans
传递了不正确的参数,这仍然不是您的错。这是Rust安全性基础的一部分:非unsafe
函数可以安全调用。您正在使用nightly
rustc
,因此可能存在尚未捕获的错误。考虑使用稳定编译器。看起来kmeans
每晚都需要,但这应该是不使用它的原因。