単純なオブジェクト プールを作成しようとしていますが、うまく動作しません。malloc を使用してテンプレートの型の動的配列にスペースを割り当てると、コードがクラッシュする
私のコード:
template <class cl>
class ObjectPool{
public:
gltAtlasRenderer* br;
cl* items;
int SIZE,texid;
void Innit(int size,int texidi)
{
SIZE=size;
items=(cl*)malloc(sizeof(cl)*SIZE);->>>>>>>>>>HERE MY APP CRASHES
/*br=new gltAtlasRenderer(SIZE,false,1);
texid=texidi;
for(int c=0;c<SIZE;c++)items[c].alive=false;
*/
}
void Update(Arena* arena)
{
for(int c=0;c<SIZE;c++)
{
if(!items[c].alive)continue;
items[c].Update(arena);
}
}
void Render()
{
br->RenderStart();
for(int c=0;c<SIZE;c++)
{
if(!items[c].alive)continue;
items[c].Render(br);
}
br->RenderStop(texid);
}
};
Web で見つけたすべての例は固定配列とベクトルを使用していますが、実行時に配列を割り当てる必要があります。
編集:これは私がそれを作成する方法です:
ObjectPool<Enemie1>* enemies1;
void Innit()
{
enemies1->Innit(size,texid);
}
その行でクラッシュしていることは知っていますが、それを称賛するとクラッシュしません