Copie d'un pointeur de contenu à un autre

J'ai pensé que je ai lu quelque part que lors de l'utilisation de pointeurs et nous voulons copier le contenu de l'un à l'autre qu'il y a deux options:

  • à l'aide de memcpy ou
  • juste de les assigner avec = ?

Cependant dans la partie inférieure exemple, je l'ai juste testé par l'allocation de mémoire pour les deux pointeurs, puis l'attribution de la deuxième, de modifier la première..mais alors l'entrée de mon deuxième pointeur est également en train de changer.. Ce que je fais de mal :/.

typedef struct {

    int a;
    int b;
    int c;
} my_struct;


int main(int argc, char** argv) {

    my_struct* first = malloc(sizeof(my_struct));   
    first->a = 100; first->b = 101; first->c = 1000;

    my_struct* bb = malloc(sizeof(my_struct));  

    printf("first %d %d %d\n", first->a, first->b, first->c);
    bb = first;
    printf("second %d %d %d\n", bb->a, first->b, bb->c);


    first->a = 55; first->b = 55; first->c = 89;
    printf("second %d %d %d\n", bb->a, first->b, bb->c);
}
  • Je ne vois pas comment strdup() est à distance pertinentes. Si les commentaires peut-être-ont voté, j'avais le bas-vote de la suggestion.
InformationsquelleAutor malajedala | 2016-10-09