Pointers

Status
Niet open voor verdere reacties.

revelian

Gebruiker
Lid geworden
20 mrt 2007
Berichten
81
hoi,

weet iemand misschien hoe je ervoor kan zorgen dan de input op een char *p wordt opgeslagen en vervolgens kan je het dan weergeven.

Ik bedoel zoiets als:

char *p;

scanf("%s", &p); // Geen idee als dit goed is ???
. . . . . // Iets doen om het op het scherm te krijgen.
 
Code:
int main(){
    char *s;
    scanf("%s", s);
    printf("%s",s);
    return 0;
}
 
Bedankt voor het antwoorden CoD_NL,

ik krijg het volgende te zien als ik het run : Segmentation fault
 
ik krijg het volgende te zien als ik het run : Segmentation fault

Als ik onder DevCPP een C project aanmaak dan werkt de code gewoon naar behoren...

Code:
#include <stdio.h>
#include <stdlib.h>

int main(){
    char *s;
    scanf("%s", s);
    printf("%s",s);
    system("PAUSE");
    return 0;
}
 
Hoi CoD_NL,


Heb de code in DEV-Cpp geprobeerd. Het compileert nu wel zonder probleem, maar het doet niet wat ik verwacht.

Ik kan nu namelijk wel iets intikken, maar zodra ik op ENTER druk sluit de programma zichzelf af. Op een andere computer krijg ik zo'n fout bericht van Windows :confused:
 
Hoi CoD_NL,


Heb de code in DEV-Cpp geprobeerd. Het compileert nu wel zonder probleem, maar het doet niet wat ik verwacht.

Ik kan nu namelijk wel iets intikken, maar zodra ik op ENTER druk sluit de programma zichzelf af. Op een andere computer krijg ik zo'n fout bericht van Windows :confused:

Je hebt helemaal gelijk. Ik werk zelden met die functies, en hetgeen ik testte werkte gewoon. Je zou 'gets()' kunnen gebruiken, dat werkt wel. (net getest)

Code:
int main(){
   char s[255];
   gets(s);
   printf(s);
   return 0;
}
 
Hoi CoD_NL,

Srry voor de late reactie,

Dat zou inderdaad moeten werken. Het ging mij niet zozeer om het printen van een string in C, maar om het printen van de inhoudt van een pointer. Dat lukte mij maar niet.


Toch bedankt voor je hulp !
 
Dat zou inderdaad moeten werken. Het ging mij niet zozeer om het printen van een string in C, maar om het printen van de inhoudt van een pointer. Dat lukte mij maar niet.

Je kunt het asterisk(= *) teken voor de pointer plaatsen:

Code:
void print(int *i){
  std::cout << *i << '\n';
}
 
printf kan adressen weergeven en itoa kan ieder getal converteren naar tekst:

Code:
printf("%p", pointer);

// of

char buf[16];
puts(itoa((int)pointer, buf, 16));
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan