la copie des données dans le tableau à l'aide de memcpy

#include <stdio.h>

int main(){
    int a[4];
    int b[4],i;
    a[0] = 4;
    a[1] = 3;
    a[2] = 2;
    a[3] = 1;
    memcpy(&b, &a, sizeof(a));
    for (i = 0; i < 4; i++){
        printf("b[%d]:%d",i,b[i]);
    }
    printf("%d",sizeof(b));
}

ANS:

b[0]:4b[1]:3b[2]:2b[3]:116
Exited: ExitFailure 2

Je reçois les réponses correctes. Mais l'acquisition d'une exception en tant que Sortie: ExitFailure 2.

Est de cette manière que de la copie de la matrice de données à l'aide de memcpy est mal?

Essayez d'ajouter un return 0; à la fin.
Vous utilisez memcpy sorte de mal ici, vous n'avez pas besoin de l'adresse de l'opérateur (&) tableau-de-type est compatible avec le pointeur de type, de sorte memcpy(b, a, sizeof(a)); est assez.
Vous êtes correct. Je suis en cours d'exécution dans le codepad.org. donc je n'ai pas obtenez des messages d'erreur pour le manque de valeur de retour.
k, je vais faire une réponse.
Le & est facultative pour les tableaux. Je laisse toujours. Mais pour les pointeurs, c'est évidemment différent.

OriginalL'auteur Angus | 2012-07-13