3

クラスのコンストラクターに次のコードがあります。

verts=new GLfloat[nVerts];

verts はクラス (GLfloat *) のメンバー変数で、nVerts は 4 です。そのコードに何か問題がありますか? 同じエラーが発生します malloc(sizeof(GLfloat)*nVerts) を実行しようとすると、メモリが不足していないと思います。そのコード行をコードの別の部分に変更すると(たとえば、メソッドに)次のように、コンストラクターを呼び出す直前にコンストラクターを呼び出します:GLfloat *test=new GLfloat[4]動作します)

4

1 に答える 1

4

私は3つのことをチェックします:

  1. それが 4 であると 100% 確信していnVertsますか?
  2. メモリが本当に使い果たされていませんか?
  3. ヒープが壊れていませんか? valgrind がそのお手伝いをします。
于 2012-04-21T16:44:45.023 に答える