在 C 和 C++ 中创建点数组

Posted

技术标签:

【中文标题】在 C 和 C++ 中创建点数组【英文标题】:Creating array of points in C and C++ 【发布时间】:2017-04-05 13:48:14 【问题描述】:

有不同的方法可以达到相同的目的,但这基本上是我想要做的:

typedef struct point_t 
    unsigned int x;
    unsigned int y
 point_t;

point_t points[64] = 23, 67, 123, 9, 55, 0 ...

我只想创建一个 xy 坐标的常量数组并像这样读取它们:

i = points[0].x
j = points[0].y

这在 C 和 C++ 中有效吗?

【问题讨论】:

你试过编译吗? 你真的需要编译为 C C++的代码吗? 不确定是否适用,但如果您打算进行繁重的计算,您可能需要考虑使用structures of arrays。 【参考方案1】:

声明结构时出现语法错误,unsigned int y 后面缺少分号,无论如何,检查它是否有效的最佳方法是使用 c/c++ 编译器,例如,尝试编译并运行这个:

#include <math.h>
#include <stdio.h>

typedef struct point_t 
    unsigned int x;
    unsigned int y;
 point_t;

int main(int argc, char *argv[]) 
    point_t points[64] = 23, 67, 123, 9, 55, 0;

    for (int i = 0; i < 64; i++) 
        printf("%d %d\n", points[i].x, points[i].y);
    

你应该看到你是如何填充前 3 个点的,其余的结构数组将被 0 填充。

【讨论】:

printf("%d %d\n", points[i]); 无法使用printf("%d %d\n", points[i].x, points[i].y); @kaldoran 它正在使用 vs2015 编译器,无论如何,正在编辑

以上是关于在 C 和 C++ 中创建点数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在矩阵内使用for循环和数据在R中创建点图?

在 FBX SDK 中创建点或顶点

在ROS中创建点云并可视化

将屏幕空间转换为世界空间以在 python 中创建点云

我们可以在 C++ 中创建可变长度数组吗

有没有办法在 C++ 中创建一个循环数组