Pointer til char array

Tags:    c++

Hvordan kan jeg lave en pointer til et char array?

Jeg har prøvet med følgende kode:
Fold kodeboks ind/udKode 


Jeg får følgende fejl:
main.c: In function `main':
main.c:5: warning: initialization from incompatible pointer type

Jeg bruger mingw som compiler



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hej Søren

Ved brug af en anden kompiler kommer får jeg en mere sigende fejlbesked, der forklarer hvorfor.

error C2440: 'initializing' : cannot convert from 'char (*)[12]' to 'char *'

Der er ingen grund til at lave en pointer til dit char array, da du kan bruge det direkte. Se nedenstående kodesnippet, der viser hvordan.

Fold kodeboks ind/udKode 



Hvis du endelig skal lave et pointer til dit array eller rettere indholdet af det, så skal du gøre det til en position i array'et. Dette skyldes at det ikke er addressen på array'et du skal have men indholdet af det. I nedenstående kodesnippet har jeg vist hvordan.

Fold kodeboks ind/udKode 



Hth







Indlæg senest redigeret d. 01.01.2007 19:48 af Bruger #10448
Fold kodeboks ind/udKode 


char * og array er næsten compatible.
For at få pointeren til at pege på arrayet skal du ikke bruge & (addres of).
Og for at få udskrevet indholdet af en char * som en streng skal du ikke bruge * (indholdet af).



Jess: Jeg er udmærket klar over at jeg kan bruge det direkte.
Min kode var blot for at prøve det, det jeg skal bruge det til er, jeg vil lave en funktion som tager en pointer til et char array således at jeg kan ændre i den uden at skulle returnere først.

Bertel: Jeps, det compiler fint, men hvordan skal jeg skrive til array igennem pointeren ?



Fold kodeboks ind/udKode 


Eller

Fold kodeboks ind/udKode 


Eller
Fold kodeboks ind/udKode 




Wow, mange tak Bertel.
Du plejer ikke tage imod point, så jeg beholder dem.



t