通知
すべてクリア
Topic starter
2002年1月28日 7:19 PM
初歩的な質問ですいません。
下記で記したような構造体を宣言をし、データを代入、取得などは出来るのですが、
const int MAX = 50;
struct Data
{
CString a;
int b;
CString c;
bool d;
}temp [MAX];
データを代入する前に一度初期化を行いたいのですが、
データを初期化する事ができません。
HELPで「delete [] temp」で開放すると記述されていますが、
「配列の delete が定義されていません。配列は、ポインタに変換されます」
といった警告メッセージがでます。
どのように記述したら、初期化できるのでしょうか?
皆様、良い知恵をお貸しください。
よろしくお願いします。
2002年1月28日 7:39 PM
deleteで領域を開放できるのは、new演算子で確保した領域です。
クリリンさんの宣言では、temp[MAX]をdeleteで開放することはできませんよ。
また、「データの初期化」は一般に、領域を'\0'で埋めることを指します。
deleteで領域を開放することとは意味が異なります。
2002年1月28日 7:41 PM
すみません、肝心の話が抜けていました。
> データを代入する前に一度初期化を行いたいのですが、
>
ZeroMemory()というAPIがあります。
Topic starter
2002年1月28日 7:59 PM
sugarさん、ありがとうございます。
よくよく考えたら、開放ではなく、初期化がしたかっただけなので、
ループを使って、初期化しないと、実データは初期化できないと何処かで聞きましたので、
そうする事にします。
本当に初歩的な質問ですいません。