Supposons que je veuille définir une structure représentant la longueur du vecteur et ses valeurs comme :
struct Vector{
double* x;
int n;
};
Maintenant, supposons que je veuille définir un vecteur y et lui allouer de la mémoire.
struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector));
Mes recherches sur Internet montrent que je dois allouer la mémoire pour x séparément.
y->x = (double*)malloc(10*sizeof(double));
Mais, il semble que j'alloue la mémoire pour y->x deux fois, l'une pendant l'allocation de la mémoire pour y et l'autre pendant l'allocation de la mémoire pour y->x, et cela semble un gaspillage de mémoire. J'apprécierais beaucoup que vous me fassiez savoir ce que le compilateur fait réellement et quelle serait la bonne façon de procéder. initialiser à la fois y et y->x.
Merci d'avance.