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

構造体の配列全体をクリアするエレガントなソリューションを探しているかもしれません。

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

(構造にPODタイプのみが含まれていると仮定)

于 2012-04-12T03:24:10.543 に答える