【发布时间】:2018-01-27 20:59:34
【问题描述】:
在使用这样的基本示例时,我遇到了分段错误。我相信这是由于数据的大小没有固定。如何将可变长度数据附加到结构?
struct Node {
char * data;
struct Node* next;
};
void compareWord(struct Node** head_ref, char * new_data) {
if (strcmp((*head_ref)->data, new_data) > 0) {
head_ref->data = new_data;
}
}
int main(int argc, char* argv[]) {
struct Node* head = NULL;
head->data = "abc";
char buf[] = "hello";
compareWord(&head, buf);
return 0;
}
【问题讨论】:
-
你没有显示printWord功能,请发minimal reproducible example
-
Home 有多少内存分配给
head,然后再尝试使用它?? (提示,它是一个初始化的指针NULL...如果您在为其分配内存之前尝试使用它,则保证会出现段错误) -
@OldProgrammer 错字已修复
标签: c struct segmentation-fault