gpt4 book ai didi

arrays - 我如何在 Rust 中索引 C 数组?

转载 作者:行者123 更新时间:2023-11-29 07:58:22 24 4
gpt4 key购买 nike

我有一个返回指针的 C 函数:

type MYSQL_RES_REF = *mut c_void;
type MYSQL_ROW = *const *const c_char;

#[no_mangle]
extern "C" {
fn mysql_fetch_row(res: MYSQL_RES_REF) -> MYSQL_ROW;
}

let pointer = mysql_fetch_row(self.res);
let row_p = match pointer {
p if p == (0 as *const *const c_char) => panic!(),
p => p,
};

let field: &[u8] = unsafe { ffi::c_str_to_bytes(row_p[i]) };

但是尝试索引它(最后一行)会导致错误:

error: cannot index a value of type `*const *const i8`

我想知道 std::c_vec 是否是我想要的,但是 apparently that has been removed .

最佳答案

有一个offset method on pointers可以用作:

let new_p = p.offset(i);

从当前的i个元素中获取一个指针。显然,它没有进行边界检查,因此您必须确保它保持在边界内(或最后一次)。


还有一个不稳定的offset intrinsic .

关于arrays - 我如何在 Rust 中索引 C 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28050461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com