如果您的结构包含数组和数组的长度,那么如何访问数组的特定索引?
我将结构定义为:
D[D$Date=='2012-10-01', 1]
那么如何在结构中访问数组中的特定元素呢?
答案 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] );
}