gpt4 book ai didi

c# - 将一些 C++ 数组代码转换为 C#

转载 作者:行者123 更新时间:2023-11-27 23:32:16 24 4
gpt4 key购买 nike

由于指针的原因,我在将以下代码从 C++ 转换为 C# 时遇到了一些问题。

基本上我有一个

STATE** State;
States = new STATE* [max_states];

for (int i=0; i < max_states; i++) {
States[i] = new STATE(max_symbols);
}

如果这是双数组我会说

STATE[][]  States;  
States = new STATE[max_states][];

for (int i = 0; i '<' max_states; i++) {
States[i] = new STATE[max_symbols];
}

但问题是 C++ 代码没有像我预期的那样工作。

States[i] = new STATE(max_symbols);

有一些奇怪的行为,例如允许

States[cur_state]->set_recur_out(k);

我到底没看到什么?这可能是一个初学者 c++ 问题。对不起,如果我没有任何意义 =)

最佳答案

它不是二维数组,而是包含指向单个元素的指针的一维数组...
new STATE(max_symbols) 构造单个 STATE 对象,调用采用单个参数(在本例中为 max_symbols)的构造函数。

我对 C# 没有太多了解,但以下应该是 C# 中 C++ 代码的正确表示:

STATE[]  States;  
States = new STATE[max_states];

for (int i = 0; i '<' max_states; i++) {
States[i] = new STATE(max_symbols);
}

关于c# - 将一些 C++ 数组代码转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359202/

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