Was ist der Unterschied zwischen memcpy () und strncpy (), da letztere leicht einen Ersatz für erstere darstellen können?

Was ist der signifikante Unterschied zwischenmemcpy() undstrncpy()? Ich frage dies, weil wir leicht ändern könnenstrncpy() Sie können beliebige Datentypen kopieren, nicht nur Zeichen, indem Sie einfach die ersten beidenchar* Argumente zuchar* und Ändern des dritten Arguments als ein Vielfaches der Größe dieses Nicht-Zeichen-Typs. Im folgenden Programm habe ich das erfolgreich verwendet, um einen Teil eines Integer-Arrays in ein anderes zu kopieren, und es funktioniert so gut wiememcpy().

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


    int main ()
    {
    int arr[2]={20,30},brr[2]={33,44};
    //memcpy(arr,brr,sizeof(int)*1);
    strncpy((char*)arr,(char*)brr,sizeof(int)*1);
    printf("%d,%d",arr[0],arr[1]);

    }

Ebenso können wir dafür sorgen, dass es funktioniertfloat oder anderer Datentyp. Also, was ist der wesentliche Unterschied vonmemcpy()?

PS: Ich frage mich auch warummemcpy() ist instring.h Header-Datei, da fast alle Bibliotheksfunktionen mit Zeichenketten verknüpft sindmemcpy() ist in der Natur allgemeiner. Irgendein Grund?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage