如何为Struct分配双指针?

时间:2013-03-30 22:39:25

标签: c++ arrays pointers

我有这段代码:

struct human
    {
        string name;
        string adress;
        string com_name;
        string com_adress;
    };
    human **arr_human;

我需要分配指针数组。 我试试这个:

arr_human = new human * [ 1000 ];

但我不能使用这个结构(例如:

arr_human[0]->name = oName;
arr_human[0]->adress = oAddr;
arr_human[0]->com_name = cName;
arr_human[0]->com_adress = cAddr;

为什么?

1 个答案:

答案 0 :(得分:3)

就像jrok所说,你分配了指针而不是对象。你可能想做这样的事情:

for (int i = 0; i < 1000; i++)
    arr_human[i] = new human[numObjectsYouWant];

由于你正在使用C ++,你可能也会使用向量。消除了使用原始指针时可能遇到的许多问题。

vector<human> arr_humans;