【发布时间】:2021-06-25 16:08:56
【问题描述】:
我正在尝试使用 C 来实现 autograd 算法 图数据结构。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
typedef struct {
struct variable *var;
double grad;
} node;
typedef struct {
double value;
double grad;
bool requires_grad;
node *parents[];
} variable;
variable *init_variable(double value, double grad, bool requires_grad, node *parents) {
variable *new_variable;
new_variable->value = value;
new_variable->grad = grad;
new_variable->requires_grad = requires_grad;
new_variable->parents = parents; // Error happens here, "Array type 'node *[]' is not assignable"
return new_variable;
}
我不知道如何修复 语言服务提供商。而且我对语言和指针的概念还很陌生,所以请多多包涵。
我该如何解决这个问题?
【问题讨论】:
-
鉴于
variable *new_variable;是一个指向variable结构的指针,您认为它指向的是哪个variable结构? -
你确定灵活的数组成员真的是你需要的吗?
-
@SergeyA 你能告诉我如何改进吗?