Bessere Vorschläge für diese c-Funktionen copyString, concatString


Ich wurde gebeten, 2 Funktionen copyString und concatString zu erstellen, die ich gemacht und beide implementiert habe, aber an der Ausgabe, die ich bekommen habe, wurde mir gesagt, dass es besser gemacht werden kann, aber nie erklärt wurde, wie.
Jetzt bringt es mich um, was ich besser machen könnte. Hier ist der Code und ich werde mich über Vorschläge freuen.

void copyString (char **strDst, const char *strSrc)
{
     char *strTmp = NULL;
     int length = strlen (src);
     if (*strDst== NULL) 
     {
        *strDst= malloc (length);   
     }
     else 
     {  
         if (strlen(*strDst) != length)
         {
             strTmp = *strDst;
         }
         *strDst= malloc (length);  
     }
     strcpy (*strDst, strSrc);  
     if (strTmp != NULL)    
         free (strTmp );    
 }

void concatString (char **strDst, const char *cat)
{
     int cat_length = strlen (cat);
     if (cat_length > 0) 
     {  
         *strDst= realloc (*strDst, strlen (*strDst) + cat_length); 
          strcat (*strDst, cat);
     }
}




void main(int argc, char *argv[])
{
    char *str = NULL;
    copyString(&str, "Hello World");
    puts(str);
    copyString(&str,str+6);
    puts(str);
    concatString(&str, " Pesron");
}

Die Ausgabe sollte wie folgt sein:
1. Hallo Welt
2. Welt
3. Weltmensch

Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage