我正在通过学习CThe Hard Way开展工作,并坐下来做一些事情。 我撰写了一份简明版本的我正在着手处理的问题,以便更容易地予以解决:
#include <stdlib.h>
#define GROUP_SIZE 10
#define DATA_SIZE 64
struct Dummy {
char *name;
};
struct Group {
struct Dummy **dummies;
};
int main() {
struct Group *group1 = malloc(sizeof(struct Group));
group1->dummies = malloc(sizeof(struct Dummy) * GROUP_SIZE);
struct Dummy *dummy1 = group1->dummies[3];
// Why does this seg fault?
dummy1->name = (char *) malloc(DATA_SIZE);
return 0;
}
当我试图把名字点放在我的一个坟墓上时,我有过错。 利用它给我带来的痛苦,这是没有开始的空间。 为什么如此?