相关疑难解决方法(0)

初始化固定长度数组的正确方法是什么?

我在初始化固定长度数组时遇到问题. 到目前为止,我的尝试都导致了"使用可能未初始化的变量:foo_array"错误:

#[derive(Debug)]
struct Foo { a: u32, b: u32 }

impl Default for Foo {
    fn default() -> Foo { Foo{a:1, b:2} }
}

pub fn main() {
    let mut foo_array: [Foo; 10];

    // Do something here to in-place initialize foo_array?

    for f in foo_array.iter() {
        println!("{:?}", f);
    }
}
Run Code Online (Sandbox Code Playgroud)
error[E0381]: use of possibly uninitialized variable: `foo_array`
  --> src/main.rs:13:14
   |
13 |     for f in foo_array.iter() {
   |              ^^^^^^^^^ use of possibly uninitialized `foo_array`
Run Code Online (Sandbox Code Playgroud)

我实现了Default …

arrays rust

21
推荐指数
3
解决办法
2万
查看次数

为什么 Chrome 在反复刷新使用 WebAssembly 的页面后最终会抛出“内存不足:wasm 内存”?

我想相信刷新浏览器窗口或选项卡不会泄漏。不幸的是,就 WebAssembly 而言,情况似乎并非如此。

我用 Rust 构建了一个 WebAssembly 板条箱。crate 的编译大小约为 360 Kb(在内容压缩之前),并且 crate 在 Firefox 甚至 iOS 上的 Safari 中都可以正常工作。但是,我在 Chrome 中遇到了很多问题,其中之一是刷新使用.wasm最终导致控制台内存不足错误的页面。

该页面在大约 35 次刷新后正常工作,然后抛出以下内容:

Uncaught (in promise) RangeError: WebAssembly Instantiation: Out of memory: wasm memory
Run Code Online (Sandbox Code Playgroud)

在此之后,该选项卡没有用,但打开一个新选项卡并加载页面按预期工作——同样,大约前 35 次刷新。

这是浏览器中的错误还是我在代码中做错了什么?如果它是一个错误,有什么办法可以解决它吗?(并不是说我希望它会在生产中表现出来,但无论如何......)

(据推测,错误消息中提到的承诺是 返回的import('...')那个。我正在使用 webpack,所以我受到了https://github.com/webpack/webpack/issues/6615 的影响)

google-chrome webpack webassembly

4
推荐指数
1
解决办法
2438
查看次数

标签 统计

arrays ×1

google-chrome ×1

rust ×1

webassembly ×1

webpack ×1