Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;这是怎么回事?(数组作为参数)_C++_Arrays_Parameters - Fatal编程技术网

C++ C++;这是怎么回事?(数组作为参数)

C++ C++;这是怎么回事?(数组作为参数),c++,arrays,parameters,C++,Arrays,Parameters,所以在IDA中我找到了这样一个函数 struct exampleStruct { int a, b, c; }; void example(exampleStruct *(*exampleList)[3]) { //blah blah } exampleStruct forCall[3]; example(&forCall); 这就是让我困惑的部分*(*示例列表)[3]) 从仅仅看它,我会想象我会像这样调用函数 struct exampleStruct {

所以在IDA中我找到了这样一个函数

struct exampleStruct {
    int a, b, c;
};

void example(exampleStruct *(*exampleList)[3])
{
    //blah blah
}
exampleStruct forCall[3];
example(&forCall);
这就是让我困惑的部分
*(*示例列表)[3])
从仅仅看它,我会想象我会像这样调用函数

struct exampleStruct {
    int a, b, c;
};

void example(exampleStruct *(*exampleList)[3])
{
    //blah blah
}
exampleStruct forCall[3];
example(&forCall);
然后在调用它之后,我会想象我可以像这样获取值

//forCall[0].a
//forCall[2].c
//etc...

所以我的问题是,我上面说的对吗?e、 g.我是这样调用函数的吗?

如果要将exampleStruct数组传递给example,那么exampleStruct将如下所示:

void examplefoo(examplestruct somename[]) {
    allnames[0].a += 1;
}
examplefoo(allnames);
或:

基本上两者都是相同的:给函数一个指向数组第一个元素的指针

此函数将获取数组的第一个元素,并将其.a增加1。让我们看看如何调用这个函数

首先,您必须创建examplestruct的数组,例如:

examplestruct somename;
somename.a = 1;
somename.b = 2;
somename.c = 3;
examplestruct othername;
othername.a = 7;
othername.b = 8;
othername.b = 9;
examplestruct allnames[2] = {somename, othername};
并按如下方式调用函数:

void examplefoo(examplestruct somename[]) {
    allnames[0].a += 1;
}
examplefoo(allnames);

如果您随后打印allnames[0].a,您将看到它的值现在是2。

我不确定,但请尝试。
examplestuct*(*exampleList)[3]
它是struct
examplestuct
的3个指针数组上的指针。也许您应该删除outter星号以使代码一致。