假设一个int 类型大小为 5 的 a 指针;
int *a;
a = (int *)malloc(5 * sizeof(int));
我们要计算相邻两个点的距离:
可以写成
float *distance;
distance = (float *)malloc(5 * sizeof(float));
for(int i = 0; i < 4; i++)
{
distance[i] = a[i+1] - a[i];
}
distance[4] = a[0]-a[4];
以上这种方法遍历以外需要多最后一步。
可以考虑将指针的容量加1,则通过遍历即可实现:
int *a;
a = (int *)malloc(6 * sizeof(int));
float *distance;
distance = (float *)malloc(5 * sizeof(float));
a[5]=a[0];
for(int i = 0; i < 5; i++)
{
distance[i] = a[i+1] - a[i];
}
这样直接遍历即可得出所有值;