0

これは私の最初の投稿なので、うまく聞かれなかったらごめんなさい。

基本的に、動的メモリに問題があります。概念を誤解しているのか、少なくとも1つの機能を誤解しているのかを知りたいです。わかりましたので、メイン プログラム ループ内でサイズを変更する配列を管理する必要がある C++ を使用していますが、メモリを削除しようとするとヒープ エラーが発生し続けます。(以下は、私がやろうとしていることの簡略化されたバージョンです)。

void main(void)
{
  //Initialization

  //main loop
  while(true)
  {
    int* array;
    function(&array);

    printf("test %d",array[0]); //basically use the data

    delete [] array;
  }
}

//in separate file

void function(**int val)
{
   *val=new int[size of array] // i pass the size of the array...
                               //to the function as well
   //fill the array with data
   return;
}

この後、データを読み取ることができるので、ポインター「配列」にアタッチする必要がありますが、データが既に削除されているかのように削除できないのはなぜですか?

アドバイスをいただければ幸いです。

4

4 に答える 4