Myślałem Czytałem gdzieś, że przy stosowaniu wskaźników i chcemy skopiować zawartość jednego do drugiego, że istnieją dwie opcje:skopiować zawartość jeden wskaźnik do innego
- wykorzystujące memcpy lub
- tylko przypisywanie ich za pomocą =?
Jednak w dolnej przykład Właśnie testowałem to przez przydzielanie pamięci dla dwóch wskaźników, a następnie przypisanie drugi, zmieniając first..but następnie wejście mojego drugiego wskaźnika zmienia się także .. Co robię źle : /.
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);
}
@MDXF: Nie rozumiem, w jaki sposób 'strdup()' jest zdalnie istotne. Gdyby można było głosować w dół, głosowałbym nad propozycją. –