gpt4 book ai didi

c - C 中 strncpy 的总线错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:28 24 4
gpt4 key购买 nike

我正在从事与此 question 中相同的项目,但是 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 会给出总线错误。如何修复此总线错误并保留当前解决方案,或者寻找不同的解决方案是否更明智?

到目前为止,我唯一能想到的想法是,一次一个字符,将字符放入字符串中,直到到达单词的末尾。

最佳答案

这里没有声明两个指针,这只是一个指针和一个字符

char* newstring, in;

应该这样声明:

char *newstring, *in;

此外,正如其他人指出的那样,您似乎没有为这些指针分配任何内存。

关于c - C 中 strncpy 的总线错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com