0
Это часть кода, который создает узел, предположим, что c = "correctword". первый printf печатает "TEST correctword". но второй printf печатает «TEST TEST», почему это происходит? от одного к другому, я просто использовал STRCPY, pNo-> item.key должен быть "correctword", что я делаю неправильно ?:Странная ошибка с бинарным деревом и печатью
TNo* TNo_Create (char* c){
TNo* pNo = malloc(sizeof(TNo));
printf("TEST %s", c);
strcpy(pNo->item.key, c);
printf("TEST %s", pNo->item.key);
pNo->item.no = 1;
pNo->pLeft = NULL;
pNo->pRight = NULL;
printf("TEST %s, %d\n", pNo->item.key, pNo->item.no);
return pNo;
}
Это структура:
typedef struct Item{
char* key;
int no;
} TItem;
typedef struct No{
TItem item;
struct No* pLeft;
struct No* pRight;
} TNo;
Кроме того, если удалить два первых Printf, программа перестает работать без причины (прежде чем он достигнет последнего Printf) – none
Вы не выделить память 'pNo-> item.key'. – Mat
lol, это было ... C может быть странным с людьми, которые понятия не имеют, что делают hahaha! – none