Springen naar inhoud

[c] wat is het verschil tss deze twee declaraties?


  • Log in om te kunnen reageren

#1

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 29 november 2011 - 13:55

wat is het verschil tussen volgende declaratie in c?

char * new_karakter;

en:

char new_karakter[1];

is er een verschil? in mijn programma geeft het eerste een null pointer exception (denk ik) het tweede niet.
Groeten.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 29 november 2011 - 14:15

wat is het verschil tussen volgende declaratie in c?

De tweede declaratie reserveert een geheugenadres waar je een karakter in op kan slaan. De eerste declaratie doet dat niet.

Overigens compileren beide declaratie. Je doet dus kennelijk later iets wat niet mag. Dat is alleen niet te controleren aangezien je dat gedeelte van je code niet geeft.

#3

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 29 november 2011 - 14:52

stukje code waar het fout loopt:
getsUSBUSART(new_karakter,1);

dus neem 1 karakter en steek die in new_karakter


De tweede declaratie reserveert een geheugenadres waar je een karakter in op kan slaan. De eerste declaratie doet dat niet.


maar reserveer je er niet op zijn minste 1?

#4

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 29 november 2011 - 15:19

maar reserveer je er niet op zijn minste 1?

Neen, je maakt enkel een pointer aan. Wat zou er anders gebeuren als je het volgende zou doen?

char* new_karakter = &echt_karakter;

Dan zou je volgens jou een plaats gereserveerd hebben voor een nieuw karakter en die nooit gebruiken. Dat zou verspilling zijn, dus je initialiseert echt enkel maar wat geheugenruimte voor die pointer.

Trouwens, beter geen talen door elkaar halen. ;) new_karakter zou ik niet graag tegenkomen als variabele.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures