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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}