C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■95398 / 2階層)  C++ サイズ0でnewした場合
□投稿者/ az (12回)-(2020/07/28(Tue) 16:19:20)
No95394 (774RR さん) に返信


回答ありがとうございます。
先ほど、JIS X 3014:2003 5.3.4 new 式の 7と8を読みました。


> サイズ0ってのは int* p=new int[0]; の意味? (new int で 0 バイトを取ることはできないので)

⇒ そうです。
   厳密には、以下のようなstructを定義してあり
   
    typedef struct
    {
        char* pcA;
        char* pcB;
    }Hoge;

    
    イベント内で
     Hogeの配列をnewで作成しています。
    しかし、sizeの部分(int型)は、都度計算しており 0になることもあり得ます。


       Hoge*  pHoge = NULL;

       pHoge = new Hoge[size];


  sizeをチェックするようにし、
    size>0の時に限り new してHogeの配列を作成するように修正しました。
    
    また、デストラクタではpHogeがNULLでないときdeleteするようにしました。


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: C++ サイズ0でnewした場合 /774RR →Re[3]: C++ サイズ0でnewした場合 /774RR
 
上記関連ツリー

C++ サイズ0でnewした場合 / az (20/07/28(Tue) 14:06) #95391
Re[1]: C++ サイズ0でnewした場合 / 774RR (20/07/28(Tue) 15:30) #95394
  └ C++ サイズ0でnewした場合 / az (20/07/28(Tue) 16:19) #95398 ←Now
    └ Re[3]: C++ サイズ0でnewした場合 / 774RR (20/07/28(Tue) 16:33) #95399
      └ Re[4]: C++ サイズ0でnewした場合 / az (20/07/29(Wed) 11:47) #95409
        └ Re[5]: C++ サイズ0でnewした場合 / 774RR (20/07/29(Wed) 13:11) #95410
          └ Re[6]: C++ サイズ0でnewした場合 / 774RR (20/07/29(Wed) 15:41) #95414

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信