[C++] Array erweitern
-
Nabend

Erstmal ein bisschen Code zum Verständnis:int c_sprite::addFrame ( char *bitmapPath ) { c_bitmap bitmap; if ( !bitmap.loadBitmap ( bitmapPath ) ) { return false; } if ( spriteData.header.spriteWidth < bitmap.bitmapData.infoheader.bitmapWidth ) spriteData.header.spriteWidth = bitmap.bitmapData.infoheader.bitmapWidth; if ( spriteData.header.spriteHeight < bitmap.bitmapData.infoheader.bitmapHeight ) spriteData.header.spriteHeight = bitmap.bitmapData.infoheader.bitmapHeight; long pixels = bitmap.bitmapData.infoheader.bitmapWidth * bitmap.bitmapData.infoheader.bitmapHeight; /* -> spriteData.frame += new struct c_sprite::d_sprite::d_frame[1]; spriteData.frame[f].frameType = SINGLEFRAME; spriteData.frame[f].frameOriginX = 0; spriteData.frame[f].frameOriginY = 0; spriteData.frame[f].frameWidth = bitmap.bitmapData.infoheader.bitmapWidth; spriteData.frame[f].frameHeight = bitmap.bitmapData.infoheader.bitmapHeight; spriteData.frame[f].p_frameData = new unsigned char[pixels]; for ( int d = 0; d < pixels; d++ ) { spriteData.frame[f].p_frameData[d] = bitmap.bitmapData.p_pixelmap[d].pixel8Bit; } */ return true; };So nun meine Frage:
Wie man die Größe eines Arrays zur Laufzeit eines Programms bestimmt, weiß ich ja.
Aber wie kann man die Größe Erweitern ?Um in diesem Fall ein weiteres Frame zu einem Sprite hinzuzufügen.
-
Benutze dafür std::vector. Steht in jedem vernünftigen C++Buch oder auch hier: http://www.kharchi.de/cppratgeber2.htm
Hier ist noch eine Reference: http://www.cppreference.com/cppvector/index.html
-
Daran hab ich auch schon gedacht.
Ich möchte aber trozdem gerne wissen, ob, und wenn ja, wie das mit Arrays funktioniert.
( Egal wie umständlich es auch sein mag )
-
Man kann ein Array nicht nachträglich ändern! Du kannst nur ein neues (größeres) anlegen und den Inhalt des alten Arrays in das neue kopieren/verschieben. Und dann das alte Array löschen.
-
Da hätt ich auch gleich drauf kommen können.

-> CLOSED <-
&
*indeckunggeh*