Я вызываю strtok в своей функции, чтобы получить два символа * из символа *, разделенного запятой. Когда я это делаю, это сегфолтинг, и я не совсем уверен, почему.
Tree tree = create_node(NULL);
add(tree, "jacob");
add(tree, "jacob, blue");
(часть) метод add:
void add(Tree tree, char * input){
printf("Add: %s\n", input);
char * parent_name;
char * child_name;
if(strstr(input, ",") != NULL){
const char delimiter[2] = ",";
parent_name = strtok(input, delimiter);
child_name = strtok(NULL, delimiter);
}else{
parent_name = input;
}
printf("pn, %s cn: %s\n", parent_name, child_name);
Фактические результаты:
Add: jacob
pn, jacob cn: (null)
//Empty tree!
//jacob is the root
Add: jacob, blue
Segmentation fault (core dumped)
Это происходит при первом вызове strtok (). Я действительно озадачен, почему. Извините, если это действительно просто.