如何直接访问结构中字段的元素

How to access an element of a field in a structure directly

我在下面的代码示例中定义了数组结构:

struct Struct {
   float *field;
};

其中字段是具有索引 idx 的任意长度的数组。 目前我正在按如下方式填充这些数组:

float *field_ptr = a->field;
field_ptr[idx] = 1.0f;

有没有不用中间field_ptr指针直接填充数组的方法?我尝试了几种方法,但不幸的是我不完全是 C 或指针专家,所以我 运行 遇到了越界内存问题。

编辑 1:了解这是 (Py)Cuda 代码的一部分可能会有用。
编辑 2:代码驻留在具有以下(指针)声明的示例函数中:

void testfunction(Struct *a)
{
    int idx = get_index();
    float *field_ptr = a->field;
    field_ptr[idx] = 1.0f;
}

当然有;只需使用:

a->field[idx] = 1.0f;

如果 aStruct * 类型。

如果实例是指向结构的指针,则需要使用 -> 运算符取消引用它,如果它不是指针,则使用 . 运算符。示例:

struct Struct x;
/* you need to allocate space for the floats first */
x.field[0] = value;

struct Struct *x;
/* you need to allocate space for the floats first, and x must be a valid pointer */
x->field[0] = value;