gpt4 book ai didi

c - 如何在c中通过引用传递typedef结构

转载 作者:行者123 更新时间:2023-11-30 19:24:55 24 4
gpt4 key购买 nike

我正在尝试将txt文件中的数据点加载到typdef结构数据集,我需要一个函数将数据集拆分为训练和测试,因此它必须返回两个值, c 这可以使用通过 ref 获取参数的 void 方法来完成,例如它的工作原理如下

#include<stdio.h>
void div(int a, int b, int *quotient, int *remainder) {
*quotient = a / b;
*remainder = a % b;
}
main() {
int a = 76, b = 10;
int q, r;
div(a, b, &q, &r);
printf("Quotient is: %d\nRemainder is: %d\n", q, r);
}

但是,如果参数是像我这样的结构,则值似乎不会更新并保持初始化时的状态。

我的问题是如何使其适用于结构,这样像这样的东西就可以工作

dataset *trainset, *testset;

trainset = load(filename, ratio, &testset);

typedef 结构是:

typedef struct data_member {
double* inputs; /* The input data */
double* targets; /* The target outputs */
} data_member;

typedef struct dataset{
data_member* members; /* The members of the dataset */
int num_members; /* The number of members in the set */
int num_inputs; /* The number of inputs in the set */
int num_outputs; /* The number of outputs in the set */
} dataset;

传递的文件格式为

<Nrows> <Ninputs> <Noutputs>
<i1> <i2> <i3>.. <iN> <o1>... <oN>
<i1> <i2> <i3>.. <iN> <o1>... <oN>
<i1> <i2> <i3>.. <iN> <o1>... <oN>
<i1> <i2> <i3>.. <iN> <o1>... <oN>
..
..
<i1> <i2> <i3>.. <iN> <o1>... <oN>

谢谢

最佳答案

这就是你可以这样调用它:

<小时/>
typedef stuct dataset {
struct data_member *members;
unsigned num_members;
unsigned num_inputs;
unsigned num_outputs;
} Dataset;
int load_data(Dataset *result, FILE *fp);

int main(void)
{
int rc;
FILE *fp;
Dataset the_data = {NULL, 0,0,0};

fp = fopen ("the_file", "r");
rc = load_data( &the_data, fp);

fclose (fp);
return 0;
}

int load_data(Dataset *result, FILE *fp)
{
/* ... your code here ... */
return 13;
}

关于c - 如何在c中通过引用传递typedef结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59599621/

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