私はこの質問と同じプロジェクトに取り組んでいますが、typedefが少し異なります。
typedef struct {
char* word;
int index;
} data_t;
typedef struct node node_t;
typedef node {
void *data;
node_t *left;
node_t *right;
}
文字列を個々の単語に分割し、それをdata_t構造体に貼り付けてから、バイナリ検索ツリーに挿入しようとしています。入力文字列をループしているときに、その文字が単語の終わりを示す文字であることがわかった場合、単語の最初と最後の間の文字数が文字列にコピーされるという考え方です。以下を使用して実行しようとしました:
strncpy(newstring, (in+wordstart), (i-wordstart));
どこ:
char* newstring, in;
int i, wordstart;
ただし、その特定の回線が呼び出されると、gccはバスエラーを発生させます。このバスエラーをどのように修正し、現在の解決策を維持することができますか、それとも別の解決策を探す方が賢明ですか?
私がこれまでに考えた唯一のアイデアは、一度に1文字ずつ、単語の終わりに達するまで文字を文字列に入れることです。