私は malloc と realloc を使用するのが初めてで、いくつか質問があります。
質問1。
私が作成しているゲームでは、独自のスペースチップを作成できます。これは、標準である現在のメモリの量の 2 倍を再割り当てする方がよいのではないかと考えていました。それとも、必要な頂点のために 100 個の余分なスペースを再割り当てするようなことをしますか? 私自身は、2番目のオプションの方が良いと思いますが、気付いていないことがあります。
質問2
正方形の割り当てられた配列がある場合[20] [4]、正方形のサイズ[100] [4]に再割り当てするにはどうすればよいですか? 最初の配列を 100 に再割り当てしてから、4 つの新しいスポットで 20 ~ 99 を malloc しますか?
質問 3
現在、データを再割り当てすると奇妙なことが起こります。ブレークポイントを置くとすべてうまくいきますが、コードを一度に動作させるとクラッシュします。だから私はメモリリークがあると推測しています。現在、これは私の realloc コードです。
unsigned char *temp =( unsigned char* ) realloc(realSpaceship, gridSize*sizeof( unsigned char ));
if(temp != NULL)
{
realSpaceship = temp;
//free(temp); Line is now deleted at the advice of the helpfull people here.
}
else
{
//error
printf("realloc error\n");
free(realSpaceship);
}
一時を解放するのは良い考えだと思いましたが、コードが別の場所でクラッシュするだけです。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!
問題は再割り当てではなく、別の場所にあることに気付きました。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!
少し追加情報。私はc ++を使用しています。また、glmも使用しています