0

如何使用指针初始化这个结构数组?我尝试将输入读入结构变量并得到垃圾输出,但是当我初始化一个静态数组时,我输出了正确的变量。

    unsigned int data = numberOfLines();
    patient *q; //struct pointer

    q = new patient[data];

   //What I want to do
   q = new patient[data] = {0,0,0,0,0}; // initialize the array
4

3 回答 3

1

你可能想要std:: fill()

#include <algorithm>

patient *patients = ...;
size_t count = ...;
std::fill(patients, patients + count, DEFAULT_PATIENT_VALUE);
于 2012-04-12T03:32:14.917 回答
0

如果您使用的是非 POD 类型,请遍历您的患者数组并初始化每个单元格。

如果你想变得花哨,你可以通过创建一个函数来获得一点灵活性。

patient * createInitializedPatientArray(patient defaultPatient, int length)
{
    patient * temp = new patient[length];
    for(int x = 0; x < length; x++) 
        temp[x] = defaultPatient;
    return temp;
}
于 2012-04-12T03:20:28.957 回答
0

Maybe you are looking for an elegant solution to clear the entire array of structures:

memset(q, 0, sizeof(patient) * data);

(assuming your structure contains only POD types)

于 2012-04-12T03:24:10.543 回答