rust 初始化KMeans结构时出现“error:process didn't exit successfully”

cbwuti44  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(272)

我尝试在夜间频道上使用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中,导致此错误的可能原因是什么?

s2j5cfk0

s2j5cfk01#

我不确定这是我的环境/代码中的错误还是板条箱中的bug
您没有编写任何unsafe代码。因此,堆损坏**不可能是您的代码的错误。**可能是:

  • kmeans中的不安全代码中的一个bug。

请注意,即使您向kmeans传递了不正确的参数,这仍然不是您的错。这是Rust安全性基础的一部分:非unsafe函数可以安全调用。

  • Rust编译器中的一个bug。

您正在使用nightly rustc,因此可能存在尚未捕获的错误。考虑使用稳定编译器。看起来kmeans每晚都需要,但这应该是不使用它的原因。

  • 您的环境中的某些东西正在干扰程序的正确执行(例如:将代码注入到正在运行的程序中,这会产生意想不到的结果)。
  • 导致错误编译或不兼容的异常编译器选项。我想你没有做过那样的事。

相关问题