C как выделить struct для структуры? - PullRequest
0 голосов
/ 24 мая 2018

Следующий код дает мне ошибку компиляции "incompatible types at assignment"

Файл 1:

struct x{ 
  int a; 
  int b; 
  int c;
};

Файл 2:

static struct x d;
void copyStructVal(){
  d-> a = 1;
  d-> b = 2;
  d-> c = 3;
}
x getStruct(){
 copyStructVal();
 return d;
}

Файл 3:

static struct x e;
void copy(){
 e = getStruct();
}

Я искал это и не могу найти ответ.Могу ли я сделать это с помощью указателя?(Я любитель в C)

1 Ответ

0 голосов
/ 24 мая 2018

В C вам нужно написать struct за названием структуры, если вы не typedef.Другими словами:

x getStruct(){

Должно быть:

struct x getStruct(){

Поскольку вы написали это в оставшейся части кода, я думаю, что это опечатка.

Вкл.Кроме того, вы должны исправить эти 3 строки, поскольку d не является указателем:

  d-> a = 1;
  d-> b = 2;
  d-> c = 3;

Они должны быть:

  d.a = 1;
  d.b = 2;
  d.c = 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...