使用指针使用的结构,分段故障

时间:2016-03-12 19:11:22

标签: c pointers struct segmentation-fault

我在C中使用struct数组有点问题。它返回了我的分段错误

struct Yset{
char *unit;
char *name;
char *showValue;
char *fillColor;
char *yData;
};

struct Yset *svg_ysets;
int ySetCounter = 0;


svg_ysets[ySetCounter].unit = malloc(strlen((char*)attribute)+1);
strcpy(svg_ysets[ySetCounter].unit,(char*)attribute);
printf("%s\n", svg_ysets[ySetCounter].unit);
ySetCounter++;

这次使用有什么问题?我不知道Ysets的数量,所以它必须是动态的。感谢

1 个答案:

答案 0 :(得分:1)

svg_ysets[ySetCounter].unit = malloc(strlen((char*)attribute)+1);

当指针没有指向有意义的位置时,您正在取消引用指向结构的指针。换句话说,你没有分配空间来保存结构对象本身。

// allocate five objects
struct Yset *svg_ysets = malloc (5 * sizeof(struct Yset));

如果您在某处使用动态分配的内存,请不要忘记free