如何访问C中结构中索引处的元素?

时间:2015-11-06 01:04:26

标签: c arrays pointers data-structures

如果您的结构包含数组和数组的长度,那么如何访问数组的特定索引?

我将结构定义为:

D[D$Date=='2012-10-01', 1]

那么如何在结构中访问数组中的特定元素呢?

2 个答案:

答案 0 :(得分:0)

处理此问题的传统方法是保持数组和长度彼此分离,并将它们传递给任何需要它们的函数。这也使您可以自由地声明具有静态大小的数组或通过malloc动态声明。

答案 1 :(得分:0)

要使此零长度数组起作用,您需要将数组作为结构的last member而不是第一个。然后应该能像往常一样访问索引。

https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html

#include <stdio.h>
#include <stdlib.h>

int main()
{
    typedef struct {
        int x;
        int y[];
    } flex;

    int len = 10;
    flex *f1 = malloc( sizeof( flex ) + sizeof( int ) * len );

    f1->x = len;
    f1->y[0] = 1;
    f1->y[1] = 2;
    printf ( "y[1] = %d\n", f1->y[1] );
}