如何在C中定义2D数组

时间:2019-06-12 04:16:59

标签: c multidimensional-array

我必须制作一个2D数组来携带表格的信息

我在下面找不到语法错误

int majorPositions[][]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

另外,我如何输入最后一列的详细信息,因为它是一个字符,而不是整数

5 个答案:

答案 0 :(得分:2)

您必须像这样设置数组的大小:

int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

int majorPositions[4][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

如果最后一列只是ON / OFF,您不能仅将其表示为1还是0?

答案 1 :(得分:1)

您必须按照以下说明指定内部数组的大小。

int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

而且,我认为您可以将ON和OFF编码为1和0。

答案 2 :(得分:1)

我会使用类似(类似于上面提到的其他内容)

#include <stdbool.h>

typedef struct
{
   int x;
   int y;
   int z;
   bool Tool;
} TableEntry_t;

TableEntry_t majorPositions[4];

这是一个明确的解决方案,您可以根据需要轻松扩展表。

答案 3 :(得分:0)

您需要显式输入内部尺寸尺寸。为了简化所有内容,请考虑利用C中的布尔值只是美化的整数这一事实。您可以将int用作bool,反之亦然。

#include <stdbool.h>

int majorPositions[][4]=
{
  {  0,  90, -90, false },
  { 90,  15,  90, true  },
  {-45, -30,  30, true  },
  {  0,  60,   0, false },
};

您可以在编译时使用sizeof(majorPositions)/sizeof(majorPositions[0])(在这种情况下为4)获得此数组的大小。

或者使用其他答案中建议的struct。它可能会或可能不会提供效率较低的代码。

答案 4 :(得分:0)

在二维数组中,必须在声明期间指定数组的第二维。

int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};