我正在按照说明为灵活数组创建代码,并且我被告知要使用 x-> y = z而不是x.y = z。什么是使用指针而不是通常分配值的原因?为什么我在我的C代码中使用x-> y = z而不是x.y = z?
此代码包含自定义库flexarray.h我会把底部
flexarray.c:
struct flexarrayrec{
int capacity;
int itemcount;
int *items;
};
flexarray flexarray_new(){
flexarray result = emalloc(sizeof *result);
result->capacity = 2;
result->itemcount = 0;
result->items = emalloc(result->capacity * sizeof result->items[0]);
return result;
}
flexarray.h:
#ifndef FLEXARRAY_H_
#define FLEXARRAY_H_
typedef struct flexarrayrec *flexarray;
extern void flexarray_append(flexarray f, int item);
extern void flexarray_free(flexarray f);
extern flexarray flexarray_new();
extern void flexarray_print(flexarray f);
extern void flexarray_sort(flexarray f);
#endif