Я реализую структуру данных каната. Как передать мои строковые значения? Они отображаются как «(null)». Я думаю, что мое чёрное слово настроено неправильно. Я новичок в C, начиная с C++. В конечном итоге это будет текстовый редактор, но пока я просто пытаюсь отобразить введенные строки в упорядоченном списке по номеру индекса.Передача строк в C
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct treeNode
{
int i, length;
char word;
struct treeNode *left;
struct treeNode *right;
} treeNode;
treeNode *insert(treeNode *node, int i, char word, int length)
{
printf("Insert %d :", word);
if(node==NULL)
{
treeNode *temp;
temp = (treeNode *)malloc(sizeof(treeNode));
temp->i = i;
temp->word;
temp->length;
temp->left = temp->right = NULL;
return temp;
}
if(i >(node->i))
node->right = insert(node->right, i, word, length);
else if(i < (node->i))
node->left = insert(node->left,i,word,length);
return node;
}
void PrintInorder(treeNode *node)
{
if(node==NULL)
return;
PrintInorder(node->left);
printf("%d", node->i);
printf("%s", node->word);
PrintInorder(node->right);
}
void main()
{
treeNode *root = NULL;
char word[256];
int length, a;
for(a = 0; a < 3; a++)
{
printf("Enter word: ");
scanf("%s", word);
length = strlen(word);
root = insert(root, a, *word,length);
}
printf("Print in order:\n");
PrintInorder(root);
}
'Е ("Вставка% D:", слово);' => 'Е ("Вставьте% s \ N", слово),' ' – bruceg
символ слово' является одиночным символом. Вы должны либо использовать «char * word», либо самостоятельно распределять/освобождать память, либо использовать «char word [256]» (оптимистично оценивая максимальную длину слова, которую вы можете ожидать). –
Использовать слово char [256] С помощью функции ввода и структуры? – user3337705