Bonjour.
Voici mon interrogation.
Je me demande la nuance entre 2 codes.
dans un cas on déclare un pointeur et on malloc(), dans l'autre on déclare un contenu et on renvoie le pointeur.

Au niveau du mécanisme du programme, est-ce que dans le cas ou on ne fait pas de malloc, le programme gère un 'malloc' automatique qui doit être free() ? Parce que pour moi on alloue une certaine mémoire mais sans malloc.
Qu'en pensez vous ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
struct color *color_new(char newred, char newgreen, char newblue)
{
  struct color new;
 
  new.red = newred;
  new.green = newgreen;
  new.blue = newblue;
  return (&new);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
struct color *color_new(char red, char green, char blue)
{
     struct color *new;
new = malloc(sizeof(*new));
new->red = red;
new->blue = blue;
new->green = green;
return (new);
}