Caste en pointer til int.?

Tags:    c++

Hey.

Jeg har fået en opgave hvor jeg skal indlæse 16 chars i et array, og herefter konvertere dem til 4 integers. Umiddelbart vil jeg tro at jeg skal gøre sådan her:

Fold kodeboks ind/udKode 


Men når jeg kører programmet, kommer outputtet:
0
0
0
16777216
Selvom der er et ettal til sidst i strengen.
Hvorfor?

Mvh Jannich Brendle



Indlæg senest redigeret d. 26.05.2006 12:14 af Bruger #3996
2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Du skal tælle p op for hved udskrivning (undtagen den sidste), ellers vil den udskrive den første int to gange, dvs:

Fold kodeboks ind/udKode 


Husk at p++ vil optælle p efter at den er brugt (post increment). Du kunne også bruge ++p (pre increment), så skal du ikke bruge den på den første, men på den sidste.

Hvis det er et C program skal du returnere 0 til slut, hvis det er C++ mangler der nogle cast.

På nogle platforme (f.ex. intel PC) vil den skrive 16777216 (0x1000000) som det sidste tal. Det skyldes at de er "little-endian", dvs mindst betydende byte står først.



Død og kritte. Regnede godt med det var noget med endianness, men har vist fået byttet om på de to. :(

Men det virker nu. Tak. :)

P.S. Du har ikke svaret med et svar, men kun en kommentar så jeg kan ikke give dig nogen point. Er det med vilje?



Indlæg senest redigeret d. 26.05.2006 12:23 af Bruger #3996
t