我在同一个项目但一个稍微不同的typedef工作作为本question,:总线错误使用C函数strncpy
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提供了一个总线错误时特定的行被调用。如何解决这种总线错误并保留当前的解决方案,或者寻找其他解决方案会更明智一些?
到目前为止我唯一能想到的想法是,一次一个字符,将字符放入字符串中,直到达到单词的末尾。
你需要发布更多的代码。 –
你如何为所有这些字符串分配内存? – Mat
'char * newstring,in'只是指向一些随机存储器的指针。你需要让它们指向一些有效的内存,属于该进程的内存。 – alk