gpt4 book ai didi

c++ - 将数组作为参数传递

转载 作者:行者123 更新时间:2023-11-28 08:09:18 24 4
gpt4 key购买 nike

我有一个数组:

int *BC_type_vel;
BC_type_vel = new int [nBou+1];

和一个函数:

void BC_update (const int type[], float X[]) {

for (int i=1; i<=nBou; ++i) {

if (type[i] == 1) {

std::cout << i << " " << type[i] << " " << BC_type_vel[i] << std:: endl;

for (int e=PSiS[i]; e<PSiE[i]; ++e) {

X[e] = X[elm[e].neigh[0]];
}
}
}

我称之为:

BC_update(BC_type_vel,U);

输出如下:

1   1   0
2 1 0
3 1 0
4 1 1
5 1 0

那么为什么函数参数不能正确复制值?

最佳答案

我尝试使用 gcc 编写以下代码:

int *BC_type_vel;
int nBou = 10;

void BC_update (const int type[]) {
for (int i=1; i<=nBou; ++i) {
if (type[i] == 1)
std::cout << i << " " << type[i] << " " << BC_type_vel[i] << std:: endl;
}
}

int main () {
int i;

BC_type_vel = new int [nBou+1];
for (i=1; i<=nBou; ++i) {
if (i%2 == 0)
BC_type_vel[i] = i;
else
BC_type_vel[i] = 1;
}
BC_update(BC_type_vel);

return 0;
}

它给出了预期的结果:

1   1   1
3 1 1
5 1 1
7 1 1
9 1 1

所以问题出在您的代码中的其他地方。您需要向我们提供其余部分。

关于c++ - 将数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507613/

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