Базовые указатели функций C ++ и структура - PullRequest
1 голос
/ 24 января 2012

У меня проблемы с передачей структуры массива в функцию для обработки.

Я думаю, мне нужно передать функции адрес массива, однако есть несколько ошибок компилятора, и у меня заканчиваются комбинации, чтобы попробовать.

Затем функции необходимо вернуть значение новому члену структуры.

Вот мой лучший снимок!

  //-----------------

  void Function(struct MyStruct* ptr);

  //------------------

  int main(){

  MyStruct array[MAX];

for (int i=0; i<MAX; i++)
{

    File>>array[i].V1;
    File>>array[i].V2;
    File>>array[i].V3;
    File>>array[i].V4;
    MyStruct* ptr = &array[i];
    array[i].V5 = Function(ptr);
}
  }

  //-----------------------

  void Function(struct MyStruct* ptr)
  {
  // do something with the struct, how to I access each element in here?
  }

Спасибо!

1 Ответ

1 голос
/ 24 января 2012

У вас есть тип void для Function, поэтому вы ничего не можете вернуть. Вы должны заставить его возвращать любой тип V5.

Также, чтобы получить доступ к элементу ptr, используйте обозначение стрелки:

ptr->V5
...