如何在struct中的数组内搜索?

时间:2016-05-30 06:55:11

标签: c++ arrays struct

我在理解内存分配方面遇到了麻烦。

例如,如果我有一个结构如下:

struct AccountInfo{
     int number;
     int balance;
     int past[9];
     int minimum_past;
     int maximum_past;
};

我如何访问数组past[9]?一个更直接的问题是我如何找到past的最小值和最大值,然后将这些值分配给minimum_pastmaximum_past

我理解将结构中的成员设置为某些值我可以像AccountInfo -> number = 10;那样做但是对于数组我仍然感到困惑。

2 个答案:

答案 0 :(得分:0)

我给你举了一个简单的例子。

在头文件中定义结构:

struct AccountInfo{
     int number;
     int balance;
     int past[9];
     int minimum_past;
     int maximum_past;
};

在您的cpp文件中:

AccountInfo st_AccInfo;

访问您的结构:

int x = st_AccInfo.number;

for(int i=0; i<sizeof(st_AccInfo.past); i++)
{
   // Navigate your Array from index 0 to 8
}

答案 1 :(得分:0)

好吧,当你将past声明为9个整数的数组时,就像C ++计数从0开始的索引一样,你可以使用的索引越大而不调用未定义的行为就是8。

话虽如此,您使用的数组元素与其他结构元素完全相同:

AccountInfo accountInfo;   // create a struct
AccountInfo* paccountInfo = &accountInfo;  // define a pointer to it

accountInfo.last[8] = 12;  // direct access
cout << paccountInfo->last[8] << endl;    // access through pointer - outputs 12