我是结构新手,我正在尝试做一些教程,看看我是否理解了我一直在学习的东西.这是我写的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct variables{
float Vx;
float Vy;
float Vz;
}velocity;
int main(){
velocity *pv;
pv = (velocity*)malloc(sizeof(velocity));
pv[0].Vx = 1;
pv[0].Vy = 2;
pv[0].Vz = 3;
free(pv);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是2:
我是否以正确的方式分配了三个变量?
由于我使用数组表示法为什么要我曾经写的[0]
,而不是[1]或[2]左右吗?
回答第一个问题:是的,您的代码完全正确.(你甚至free说得对,我有点自豪!)
至于第二个问题,我有点不确定你的意思,但是当你调用其中ñ一些整数(你的情况,这纯粹是),你在本质上只是创建数组ñ的元素.所以这是阵列中的第一和唯一的元件时Ñ = 1,并且,等不存在.malloc(N * sizeof(type))1typepv[0]pv[1]pv[2]
但是,您应该使用语法pv->Vx而不是pv[0].Vx.