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.


Anmelden zum Antworten