在C中为struct变量赋值

时间:2017-11-16 01:55:53

标签: c struct

我在向struct中的变量赋值时遇到问题。我的代码如下所示。

typedef struct _neuron
{
    double value[100];
    int id;
}NEURON;

int main() {
  NEURON node;
  int i;
  for(i = 0; i < 100; i++){
    node.value[i] = 10;
    printf("the value is %d\n",node.value[i]);
  }
}

我分配给struct变量的值是10,但是我得到0而不是10.有谁知道问题在哪里?

1 个答案:

答案 0 :(得分:1)

您使用了错误的格式说明符printf

%d格式说明符需要int参数,但您正在传递double。使用错误的格式说明符会调用未定义的行为。

对于double,请使用%f格式说明符。

printf("the value is %f\n",node.value[i]);