Gå til innhold

MinGW eller jeg som er et problem :)


Anbefalte innlegg

Hallo.

 

Sitter her og klør meg i hodet over hvorfor disse linjene kode ikke fungerer. Alltid greit med friske øyne på et problem, men har ingen i nærheten som kan c++ akkurat nå, så da tyr jeg til den generelle befolkning.

 

Nå skal det sies at jeg kompilerte og kjørte under MinGW, så det KAN være derfor.

Men er det noe jeg ikke ser her:

 

   int nPoints = 25;

   Point2D **source;

// av en eller annen grunn klikker nå denne linjen
   *source = new Point2D [ nPoints ];

 

( koden er modifisert noe får å utnytte plassen her. deklareringen er i h filen, tilordning av variablene er i en funksjon i .cc filen )

 

Edit: kompilerer greit. Kjørefeil.

Endret av Herr_Dude
Lenke til kommentar
Videoannonse
Annonse

Greit nok, source i seg selv peker bare på søppel. Dvs. at du prøver å dereferere pekeren som source peker på, men source peker på en tilfeldig adresse. Dermed vil du sannsynligvis skrive til uallokert minne. Det er kanskje ikke åpenbart, men det må også allokeres minne for å holde pekere (32 bit som regel).

Lenke til kommentar

Poenget er å deklarere en tabell av pekere av typen Point2D. Deklareringen skal gjøres ved kjøring, dvs nPoints er variabel og gis som input ( selv om det ikke ser slik ut av eksempelsnutten jeg har gitt her ).

 

Trodde dette var måten å gjøre det på. Hvordan er det man deklarerer størrelsen på en definert tabell av pekere ved kjøring da ?

Lenke til kommentar

Du vil opprette en tabell av pekere? Det er i alle fall ikke det du gjør nå, du oppretter en tabell av objekter (objektene må jo opprettes en gang uansett). Jeg ville heller brukt std::vector<Point2D *> (hvis du virkelig vil ha en tabell til pekere da, og ikke til konkrete objekter), men da må du også huske å deallokere de enkelte objektene som tabellen peker på (vector vil kun deallokere pekerne).

Endret av A_N_K
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...