Ich lerne c, ein Anfänger, kann mir bitte jemand erklären, welches Konzept fehlt mir? Und danke im Voraus.Warum stürzt das Programm beim Dereferenzieren des Zeigers auf char mit '% s' ab?
#include<stdio.h>
int main()
{
char s[10];
s[0]='A';
s[1]='B';
s[2]='\0';
char *p;
int i;
p=s;
printf("%c\n", *p); //It's ok.
printf("%s", *p); // or *s...what's wrong here,why does program crash?
return 0;
}
weil es einen Zeiger erwartet und nicht der dereferenzierte Wert. –
'% s' erwartet ein' char * ', kein' char'. –
Aktivieren Sie alle Compilerwarnungen. Ein guter Compiler hätte vor 'char * p gewarnt; ... printf ("% s", * p); '. – chux