耶。分割故障
但是,我已经把它缩小到了造成分割错误的确切的线上。
下面是相关的代码块:下面是我定义的一个结构。
typedef struct {
int placeID;
char *city;
char *continent;
char *cultural;
char *outdoors;
int dist_from_source;
} place_t;下面是我对place_t的初始化:
place_t *temp_place=NULL;造成seg故障的线路是:
temp_place->placeID=tmp;其中tmp只是一个值为1的int。
我肯定这只是一些愚蠢的指针逻辑,我暂时对它视而不见,但是任何帮助都会受到感谢!
谢谢。
发布于 2014-10-16 23:18:10
您需要首先将内存分配给struct指针:
place_t *temp_place=malloc(sizeof(struct place_t)); //allocate memory first
temp_place->placeID=tmp; //assign values发布于 2014-10-16 23:18:21
通常,无论何时定义指向结构的指针,都需要在内存中定义一个可以存储该结构地址的位置。
但是,除非您没有为该结构(例如,使用malloc或calloc)分配内存并将该内存的地址分配给上面提到的指针,否则就不能使用它,因为它指向任何东西(或者更确切地说,没有指向任何有用的东西)。
https://stackoverflow.com/questions/26415281
复制相似问题