problem beim fehler beheben eines programms
-
hallo leute ich hab ein programm geschrieben bei dem ein zeiger-vector und ein normaler char vector zussamengefügt werden sollen hier der code:
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *string; char string2[100]; int n; printf("Bitte geben sie die laenge des string ein"); scanf("%d", &n); int i=0; string=(char*) malloc(n*sizeof(char)); printf("bitte geben sie den ersten string ein"); gets(string); fflush(stdin); printf("bitte geben sie den string ein der dazugefügt werden soll"); gets(string2); fflush(stdin); string2=strcpy(string, string2); printf("der neue String lautet:"); puts(string2); return 0; }
leider kommt ein fehler den ich nicht verstehe könnt ihr mir helfen?
(bitte versucht nichts grundlegendes zu verändern wie statt einen zeiger einen normalen vector zu benutzen)thanks!
-
ne fehlerbeschreibung solltest du aber mal rüberwachsen lassen.
-
error C2440: '=': 'char *' kann nicht in 'char [100]'
Damit hier alle mal deinen Fehler sehen. Du versuchst hier einen Zeiger auf ein Chararray in ein Chararray zu setzen.
-
malloc() alloziert zu wenig Speicher. Weil in C das Ende eines Strings immer durch ein Null-Byte markiert wird musst du malloc(n+1) schreiben. Besser wäre es aber, wenn du den ersten String genauso wie den zweiten in ein array char string1[100] einlesen würdest. Sonst bekommst du einen Absturz, wenn der eingegebene String länger ist.
Zum aneinanderhängen von Strings musst du strcat() verwenden. strcyp() kopiert den String nur.