Использование переданной по ссылке структурной переменной в C - PullRequest
0 голосов
/ 23 августа 2011

У меня есть основной вопрос указателя. У меня есть такой код: Пожалуйста, дайте мне знать, если что-то не так в следующем коде:

struct abc {
  int a;
  int b;
};

void func2(int*); // defined elsewhere

void func1 (struct abc *p1)
{
  struct abc var1 = *p1; // ======> Can I do this ? 

  func2(&var1.b);
  func2(&p1->b);      // =========> Which of these 2 is right ? 
}

1 Ответ

10 голосов
/ 23 августа 2011

struct abc var1 = *p1; ======> Могу ли я это сделать?

Да, это копирует структуру, указанную p1 в локальной переменной var1.

func2(&var1.b); func2(&p1->b); =========> Которыйиз этих 2 правильно?

Оба, если func2() принимает int* в качестве параметра.Это зависит от того, хотите ли вы func2 изменить p1->b или var1.b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...