steffanhalv Skrevet 6. desember 2010 Del Skrevet 6. desember 2010 (endret) Hei, jeg sliter med å få tekst inn og ut av funksjoner. Endring 2: Ok, for å gjøre det mye mer forståelig. Kompiler og kjør denne koden i en editor: #include <stdio.h> void funksjon(int,char); int main(){ int a[]={1,2,3}; int *pointera=a; char b[]="hei"; char *pointerb=b; funksjon(pointera,pointerb); printf("\nPointer tall:%d",pointera); printf("\nPointer tekst:%d",pointerb); getchar(); return 0;} void funksjon(int* tall,char* tekst) { printf("\nPointer tall:%d",tall); printf("\nPointer tekst:%d",tekst); //Denne blir feil, hvorfor? } Hvorfor blir pointeren til teksten feil inne i funksjonen? Gammel post: #include <stdio.h> #include <string.h> char funksjon(char,int); int main() { char tekst[50]="Hei"; char *pointer=tekst; printf("%s",funksjon(pointer,strlen(tekst))); //Pointer peker til tekst[0]; getchar(); return 0; } char funksjon(char* txt, int length) { char tekstUT=*txt; for (int i=0; i<=length-1; i++){ strcat(tekstUT,*txt+i);} return tekstUT; } Denne metoden fungerer med int, men hvorfor ikke med char? Endring: Har endret koden litt slik at den ble litt mer riktig. Skreiv litt for kjapt. Endret 6. desember 2010 av steffanhalv Lenke til kommentar
steffanhalv Skrevet 6. desember 2010 Forfatter Del Skrevet 6. desember 2010 Fant feilen. Det var at funksjonen ikke var deklarert som pointere, så det skal bli slik: #include <stdio.h> void funksjon(int* , char* ); int main() { int a[] = {1, 2, 3}; int *pointera = a; char b[] = "hello"; char *pointerb = b; funksjon(pointera, pointerb); printf("Pointer number:%p\n", pointera); printf("Pointer text: %p\n", pointerb); getchar(); return 0; } void funksjon(int *number, char *text) { printf("Pointer number: %p\n", number); printf("Pointer text: %p\n", text); } Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå