无法访问我的结构数组

标签 c arrays struct

我已经声明了一个结构数组:

typedef struct{
int source;
int dest;
int type;
int port;
char data;
}test;

test packet[50];

我正在尝试访问数组并将其打印到屏幕上:

for (p = 0; p < i; p++)
{
    printf("%i", packet[p]);
}

但我没有得到我期望的结果。我是 C 的新手,所以对于这篇文章的任何问题,我深表歉意。只需询问更多信息,我就会提供。我的逻辑完全错了吗?

在我的脑海中,我在一个数组中创建了该结构的 50 个实例,该数组的每个元素都包含该结构中的 5 个变量。

最佳答案

我已经很久没学过 C 了,但我认为它不是那样工作的。您可能希望一个一个地打印结构的成员变量。

for (p = 0; p < i; p++)
{
  printf("%i\n", packet[p].source);
  printf("%i\n", packet[p].dest);
  printf("%i\n", packet[p].type);
  printf("%i\n", packet[p].port);
}

或者更好的是,创建一个方法,将其称为 printTest() 之类的名称并让它执行上述操作。

在上面的示例中,您试图打印整个对象,但这是行不通的。

关于无法访问我的结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438619/

相关文章:

c++ - Rcpp:将 C 数组作为 NumericMatrix 返回给 R

c++ - telnet 客户端连接停止接收数据,服务器仍在发送

c++ - 求数字平方根的程序

c - '\n'如何在汇编中表达?

c++ - 尝试将文件读入 char 数组

arrays - 用于打印数组的 Perl 函数

c++ - 返回对结构的引用

c++ - 无法从 '_int64' 转换为 'Data *'

c - 一群人在 c 中使用结构体?

arrays - 在 React JSX 功能组件中从数组中删除值时状态未更新