Toon posts:

[C++] Een pointer naar een 2d array met het type string?

Pagina: 1
Acties:
  • 302 views

Onderwerpen


  • thomasderoo
  • Registratie: november 2009
  • Laatst online: 14-03-2012
Voor mijn gamedesign opleiding maak ik een game volledig in cmd modus. Nu wil ik mijn afbeeldingen(ascii art:P), inladen uit een text file. De code die ik heb werkt :
C++: De init
1
2
3
using namespace std; // gebruikt "std::", anders hadden we string moeten includen.

string spr_player[4][3]; // maakt een sprite met 4 subimages en 3 rijen per plaatje.


C++: De code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int i;
  string temp[3*4]; //een temp array voor alle lines ;

  ifstream ifs( "sprite.txt" ); //filename ;
  i = 0;
    while(!ifs.eof()){ // leest elke lijn van de textfile. int i zorgt dat hij bij de goede index in temp terecht komt. ;
         getline(ifs,temp[i]);
         i++;
    }
  ifs.close(); //sluit de textfile ;

int X,Y;
for(X=0;X<4;X++)
{
  for(Y=0;Y<3;Y++)
  {
    spr_player[X][Y] = temp[(X*3)+Y];// Zet alle gegevens uit de temp array in de spr_player 2d array. ;
  }
}


Leest deze textfile :


 _e,
O>/O
e'0
'7
O
  e_,
 /\,
O>/O
  e_,/_
 /\, \
O>/O

(JA HET IS EEN MOTORRIJDER :D)

en dat werkt prima.
Nu wil ik dat in een functie stoppen, zodat ik meer "afbeeldingen" kan laden op deze manier. Nu heb ik dit :


C++: De functie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void loadSprite(int subImages, int Height, string File, string **array)// subimages,height,file, en de array pointer ;
{
int i;
  string temp[Height*subImage];

  ifstream ifs( File.c_str() ); //maakt een cstring van mijn file string.
  i = 0;
  while(!ifs.eof()){
         getline(ifs,temp[i]);//laad weer de text file
  i++;
  }
  ifs.close();//close
  

int X,Y;
for(X=0;X<subImages;X++)
{
  for(Y=0;Y<Height;Y++)
  {
    array[X][Y] = temp[(X*3)+Y];
  }
}

}


C++: De aanroep van de functie
1
2
3
4
5
string **pointer;

*pointer = &spr_player[0][0];

loadSprite(4,3,"sprite.txt",pointer);


deze crasht al bij het assignen van de player array naar de pointer.
Ik denk dat het aan het type string ligt. Hoe kan ik er dus voor zorgen dat mijn functie een array, of een pointer naar een array, in zijn argumenten heeft, en deze veranderd naar de text file?

Ziet iemand een fout in mijn code. :/
alvast bedankt
Thomas

  • CoolGamer
  • Registratie: mei 2005
  • Laatst online: 20-09 12:52

CoolGamer

What is it? Dragons?

Voordat je naar een pointer mag schrijven moet je er voor zorgen dat er geheugen is gereserveerd.

pointer is niet ingesteld, waardoor je tijdens het dereferencen (met *pointer) niet gereserveerd geheugen aanspreekt. Je moet het eerst reserveren met new

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


  • thomasderoo
  • Registratie: november 2009
  • Laatst online: 14-03-2012
Wat doet new precies en hoe maak ik nu van mijn bestaande pointer een pointer die als argument gebruikt kan worden?

  • RobIII
  • Registratie: december 2001
  • Laatst online: 02:31

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Kom op zeg, we verwachten hier wel dat je een klein beetje eigen inzet toont.

[Voor 13% gewijzigd door RobIII op 07-10-2010 19:41]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • thomasderoo
  • Registratie: november 2009
  • Laatst online: 14-03-2012
Ik kom er niet echt uit. kan iemand het me even in het NEDERLANDS uitleggen.

  • 8088
  • Registratie: december 2000
  • Niet online

8088

NaN

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


  • RobIII
  • Registratie: december 2001
  • Laatst online: 02:31

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

thomasderoo schreef op vrijdag 08 oktober 2010 @ 01:03:
Ik kom er niet echt uit. kan iemand het me even in het NEDERLANDS uitleggen.
Doet je Google/Bing/Yahoo/Weet_ik_veel het niet ofzo :?

Zo werkt het hier niet. We zijn geen cursus-instituut ofzo. Kijk eens in onze Quickstart en concludeer dat we heel wat meer moeite van jou, de topicstarter, verwachten. Met dit soort posts/replies ga je niet geholpen worden; niemand helpt graag een luilak.

[Voor 5% gewijzigd door RobIII op 08-10-2010 01:20]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij

Pagina: 1

Dit topic is gesloten.



Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee