如何获取结构内部数组的地址?

时间:2018-12-01 01:03:12

标签: c++

我正在尝试获取指向结构体中数组的指针,但是执行*(struct->array)给我一个错误。

这是代码:

#include <iostream>

using namespace std;

struct Numbers {
    int highest;
    int lowest;
    int list[10]; 
};

void print_pointer_to_first_number(const Numbers* num) {
     cout << num.list << endl;
}

int main() {
    Numbers numbers; 
    numbers.highest = 10;
    numbers.lowest = 1;

    print_pointer_to_first_number(numbers);

    return 1;
}

我收到一条错误消息:

  

错误:成员引用类型'const Numbers *'是一个指针;您是要使用'->'吗?

不允许在函数中更改参数。

1 个答案:

答案 0 :(得分:0)

您将希望将Numbers用作引用而不是指针(基本上相同,但语法更好):

void print_pointer_to_first_number(const Numbers &num)

或者,您可以将其保留为指针,但是您需要(1)正确地取消引用它:

num->list

和(2)在调用它时传递一个指针:

print_pointer_to_first_number(&numbers)