【问题标题】:Basic C++ Function Pointers & Struct基本 C++ 函数指针和结构
【发布时间】:2012-02-17 08:11:44
【问题描述】:

我在将数组结构传递给函数进行处理时遇到问题。

我想我需要将数组的地址传递给函数,但是有多个编译器错误并且我用完了组合来尝试。

然后该函数需要向新的结构成员返回一个值。

这是我最好的镜头!

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

  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?
  }

谢谢!

【问题讨论】:

  • 您的main 看起来不错。不要忘记给Function 一个有用的返回类型,它会匹配array[i].V5,在里面你可以通过ptr-&gt;V1ptr-&gt;V2 等指针访问MyStruct 的成员

标签: c++ arrays function pointers struct


【解决方案1】:

对于Function,您有一个void 类型,这就是您无法返回任何内容的原因。您应该让它返回 V5 的任何类型。

另外,要访问ptr 的元素,请使用箭头符号:

ptr->V5

【讨论】:

  • 感谢您的回复。在我的函数中:ptr->V5 = 1.0;给出错误 C2227:'->V5' 的左侧必须指向类/结构/联合/泛型类型。这将使我不必定义返回类型,这是我想要做的。谢谢!
  • @user1055774 你如何定义MyStruct?您应该更新您的问题以显示您的完整代码。
  • 对不起,是我。我分配了一个类型不正确的值。代码现在可以工作了,有时你只需要有人指出显而易见的事情。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多