Programm funktioniert nicht mehr
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void kelime3(char* kelime)
{
char *string2= (char*) malloc(sizeof(char)* strlen(kelime));
int len=strlen(kelime);for(int i=0;i<len;i++)
{
string2[i]=kelime[len-1-i];}
}main(){
char *kelime="Sastrigali";
char *kelime2;
kelime3(kelime);strcpy(kelime,kelime2);
free(kelime2);
printf("%s\n,kelime") ;
int x;
scanf("d,x");
}Wo liegt mein Fehler
[code="c"]
-
Offensichtlich sind die beiden Zeilen Unsinn:
strcpy(kelime,kelime2); free(kelime2);
Frage1: Wieviel Speicher benötigt ein String in C?
Frage2: Worauf soll der Pointer kelime2 zeigen?
-
Bei
main
ist so ziemlich alles falsch.
-
DirkB schrieb:
Bei
main
ist so ziemlich alles falsch.Leider ist wirklich in den meisten Zeilen der Wurm drin.
Habe nach den ersten offensichtlichen Fehlern nicht weiter gelesen.1. Unterprogramm kelime3 erzeugt Speicherleck
und macht insgesammt so keinen Sinn
Zudem reicht der allokierte Speicher nicht ...
2. Rückgabewert bei main fehlt
3. Rückgabewert kelime3 / oder Parameter fehlen
4. Nicht initialisierter Pointer bei strcpy
-
5. beschreiben eines Stringliterals
6. printf falsch
7. scanf dreifach falsch