fonction qui retourne une structure ?
Bonjour,
Je souhaiterais comprendre ce qui se passe au niveau de la memoire lorsqu'une fonction retourne une structure (et non un pointeur vers une structure), comme dans le code ci-dessous. Est-ce qu'il y a une sorte de memcpy() qui est effectué, autre ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <stdio.h>
#include <stdlib.h>
typedef struct {
int d;
float f;
} st;
st test(int x, float y)
{
st this;
this.d = x;
this.f = y;
return this;
}
int main()
{
st st1 = test(3, 3.0);
st st2 = test(8, 8.0);
printf("st1: %d %f\n", st1.d, st1.f);
printf("st2: %d %f\n", st2.d, st2.f);
return 0;
} |