如何使用指针初始化此struct数组?我尝试读取结构变量的输入,我得到垃圾输出,但是当我初始化静态数组时,我输出正确的变量。
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
答案 0 :(得分:1)
您可能需要std:: fill()
:
#include <algorithm>
patient *patients = ...;
size_t count = ...;
std::fill(patients, patients + count, DEFAULT_PATIENT_VALUE);
答案 1 :(得分:0)
如果您使用的是non-POD type,请在患者阵列上循环并初始化每个细胞。
如果你想获得幻想,可以通过创建一个函数来获得一点灵活性。
patient * createInitializedPatientArray(patient defaultPatient, int length)
{
patient * temp = new patient[length];
for(int x = 0; x < length; x++)
temp[x] = defaultPatient;
return temp;
}
答案 2 :(得分:0)
也许您正在寻找一种优雅的解决方案来清除整个结构阵列:
memset(q, 0, sizeof(patient) * data);
(假设您的结构仅包含POD类型)