假设我想定义一个结构来表示向量的长度及其值:
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。
先谢谢你。