gpt4 book ai didi

c - 如何用函数内相同结构的值填充结构?

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:46 25 4
gpt4 key购买 nike

好的,这是我的问题:

1) 我有一个结构定义如下:

struct minos_model
{
int ifanis, ifdeck, npts, icb, cmb, noc;
double tref;
double r[MODEL_NPTS_MAX], rho[MODEL_NPTS_MAX], vpv[MODEL_NPTS_MAX], vsv[MODEL_NPTS_MAX],
qk[MODEL_NPTS_MAX], qmu[MODEL_NPTS_MAX], vph[MODEL_NPTS_MAX], vsh[MODEL_NPTS_MAX], eta[MODEL_NPTS_MAX];
char model_name[MODEL_LINE_LEN];
};
typedef struct minos_model model_t;

2) 我已经声明了一些这种形式的结构:

/* Declare structures */
model_t candidate_mod, current_mod, empty_mod;

3) 然后我将它们传递给声明如下的函数:

void
perturb_model( model_t *candidate_mod, model_t *current_mod, model_t *empty_mod )
{
candidate_mod = current_mod; // *THIS LINE*
<various other functions and whatnot>
}

4) 然后我像这样调用函数:

perturb_model( &candidate_mod, &current_mod, &empty_mod );
// arguments passed as pointers

所以上面是我所做的简化版本。我正在尝试(在第 3 步中标记为 THIS LINE 的行上)将 candidate_mod 设置为不同的结构(current_mod),我会使用一个循环,但是一个,这看起来不雅,两个,有时是我的结构也将其设置为相等 (current_mod) 包含更少的值(比 candidate_mod),因此我担心原始结构(candidate_mod)中的多余值会保留。

我还应该提到,因为这可能是相关的,该函数是在 makefile 中链接的单独的 c 文件中定义的,所以共享全局变量可能存在困难..但我认为将指针作为参数传递应该可以解决这个?

此外,根据我的研究,似乎使用 extern 可能会有所帮助,尽管经过多次尝试后我无法弄清楚。

如果有人能解释最好的方法,我将非常感激!!我知道如何在我的主代码中简单地完成它,但必须在函数中像这样分配结构。

干杯。

最佳答案

只是将src的值压入dest,不要赋值指针...但是你真正的需求并不是那么清楚。

*candidate_mod = *current_mod;

关于c - 如何用函数内相同结构的值填充结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889946/

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