PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeiger,Zeiger, Zeiger,.....



Grottenfänger
15-05-2004, 12:21
Hallo

Ich muß für die Uni Programme in C schreiben.
Bin jetzt bei einem leider hängen geblieben, vielleicht kann mir ja einer helfen.

#include <stdio.h>
#include <string.h>

char zusammensetzenString(char* EString)
{
char AString[81]=" macht den Meister.";
strcat(EString,AString);
return *EString;
}

void main()
{
char stringZiel[81]="Uebung";
printf("\n %s\n", zusammensetzenString(stringZiel));
printf("\n %s\n", stringZiel);
}

Dieses Programm soll zweimal "Uebung macht den Meister ausgeben.
Ich arbeite mit Visual Studio 6.
Beim Kompilieren und Linken werden keine Fehler bzw. Warnungen ausgegeben.
Beim Ausführen stürzt das Programm ab.
Im Debug Modus kommt beim Ausführen der Funktion zusammensetzenString die Meldung Access Violation (Zugriffsverletzung).
Mit dieser Meldung kann ich nichts anfangen bzw. weiß nicht wie ich das beseitigen kann.

Danke

wraith
15-05-2004, 12:31
Der Fehler kommt daher, weil deine Funktion einen char (ein Zeichen) zurückgibt, aber du bei printf mit %s angegeben hast, das ein char* (ein Zeiger auf char) erwartet werden soll.
Ändere deine Funktion in:


char* zusammensetzenString(char* EString)
{
char AString[81]=" macht den Meister.";
strcat(EString,AString);
return EString;
}

Grottenfänger
15-05-2004, 12:33
Danke für die fixe Antwort.
Wär da glaub ich nicht draufgekommen.