Я занимаюсь кодированием двоичного дерева поиска в C, и я столкнулся с ошибкой.Ошибка при возврате указателя
#include <stdio.h>
#include <stdlib.h>
/*struct Node*/
typedef struct Node{
int data;
struct Node* left;
struct Node* right;
}Node;
/*Forward declaration*/
Node *createNode(int data);
int main(int argc, char** argv) {
Node *root;
root = createNode(3); //ERROR
}
Node* createNode(int data){
Node* newNode = (Node*)malloc(sizeof(Node));
if(newNode==NULL){
fprintf(stderr,"Failed to allocate node\n");
exit(1);
}
newNode->data = data;
newNode->left = NULL;
newNode->right= NULL;
return newNode; //ERROR OCCURS HERE
}
Я получаю неудачный прогон, когда я пытаюсь запустить это. Ошибка возникает при возврате newNode. Я не уверен, почему точка не возвращается.
Я использую NetBeans, и это то, что он говорит
Не ваша ошибка, но нет необходимости бросать результат 'malloc'. – detly
Вам нужно предоставить больше информации, чем «ошибка возникает во время возвращения newNode». Какая ошибка? Это сообщение об ошибке «fprintf» есть или что-то еще? Это действительно ошибка или просто неожиданный результат? и т.д. Покажите нам, что произойдет, когда вы запустите свой код. – detly
Код выглядит хорошо, поэтому нам нужно знать, какую ошибку вы видите. Одна вещь, которую я заметил, это то, что у вас нет оператора 'return' в конце вашей функции' main', но я не думаю, что обычно это вызывает проблемы для большинства компиляторов. –