Предположим, что я хочу определить структуру, представляющую длину вектора, и его значения:
struct Vector{
double* x;
int n;
};
Теперь предположим, что я хочу определить вектор y и выделить для него память.
struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector));
Мой поиск через интернет показывает, что я должен выделить память для x отдельно.
y->x = (double*)malloc(10*sizeof(double));
Но, кажется, я выделяю память для y- > x дважды, при распределении памяти для y и другой при распределении памяти для y- > x, и это кажется пустой тратой памяти. Очень приветствуем, если дайте мне знать, что делает компилятор и что будет правильным способом инициализируйте как y, так и y- > x.
Спасибо заранее.