Основываясь на моем нынешнем понимании, это связано с неправильным распределением памяти.Ошибка сегментации 11 При вызове члена Struct
Не понимаю, почему он может печатать элемент-> ключ и не вызывать функцию сравнения? Элемент struct item * уже находится в памяти, я думаю?
Любые советы? были застряли довольно долго
struct item
{
char* key;
struct item *left;
struct item *right;
};
int compare(char* A, char* B){
return strcmp(A, B);
}
struct item* insert(struct item* item, char* key)
{
printf ("(%s):",key);
printf ("(%s)\n",item->key); // I can do Node->Key here
compare(item->key, key); // I cant do node->key here // Segmentation Error
}
Потенциальное исправление? Я попытался выделить его в память и загрузить элемент в него. Все тот же результат тоже. Просто пытаюсь что-нибудь я могу найти :(
struct item* item = (struct item*) malloc(sizeof(struct item));
Вам не кажется, что объявление 'struct item' может быть нам полезно? –
@MikeNakis Нет, это совершенно неуместно. ;-) –
Хорошо, @FlyingAtom, пожалуйста, не стесняйтесь: можете ли вы привести нам пример того, что 'printf (" (% s) \ n ", item-> key);' печатает прямо перед 'compare()' аварии? –