構造体の初期化の方法 – プログラミング – Home

通知
すべてクリア

[解決済] 構造体の初期化の方法


クリリン
 クリリン
(@クリリン)
ゲスト
結合: 23年前
投稿: 175
Topic starter  

初歩的な質問ですいません。
下記で記したような構造体を宣言をし、データを代入、取得などは出来るのですが、

const int MAX = 50;

struct Data
{
CString a;
int b;
CString c;
bool d;
}temp [MAX];

データを代入する前に一度初期化を行いたいのですが、
データを初期化する事ができません。
HELPで「delete [] temp」で開放すると記述されていますが、
「配列の delete が定義されていません。配列は、ポインタに変換されます」
といった警告メッセージがでます。
どのように記述したら、初期化できるのでしょうか?
皆様、良い知恵をお貸しください。
よろしくお願いします。


引用未解決
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

deleteで領域を開放できるのは、new演算子で確保した領域です。
クリリンさんの宣言では、temp[MAX]をdeleteで開放することはできませんよ。

また、「データの初期化」は一般に、領域を'\0'で埋めることを指します。
deleteで領域を開放することとは意味が異なります。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

すみません、肝心の話が抜けていました。

> データを代入する前に一度初期化を行いたいのですが、
>
ZeroMemory()というAPIがあります。


返信引用
クリリン
 クリリン
(@クリリン)
ゲスト
結合: 23年前
投稿: 175
Topic starter  

sugarさん、ありがとうございます。
よくよく考えたら、開放ではなく、初期化がしたかっただけなので、
ループを使って、初期化しないと、実データは初期化できないと何処かで聞きましたので、
そうする事にします。
本当に初歩的な質問ですいません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました