作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将用户输入的搜索词与链接列表中的多个名称进行比较。我确定这是 strcmp 的段错误,但 strcmp 的段错误解决方案似乎都不是问题所在。
这是我的代码!我对 StackOverflow 和 C 还是很陌生,所以对于我在发布此内容或在实际编程中犯的任何愚蠢错误,我提前道歉。 ><
struct node{
char* name;
struct node* next;
};
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
char reader;
char srchbuff[1001];
char name[10] = "Justin";
char* srch;
int i;
struct node *head;
struct node *cur;
head = malloc(sizeof(struct node));
head->name = name;
head->next = 0;
for(i=0; i<1000; i++){
scanf("%c", &reader);
srchbuff[i] = reader;
}
srchbuff[i] = '\0';
srch = malloc(sizeof(char)*i);
strcpy(srch, srchbuff);
cur = head;
while( (cur != NULL) && (strcmp(cur->name, srch)) != 0){
cur = cur->next;
}
}
还有其他节点分配在一个单独的函数中,工作正常,信息也在一个单独的函数中分配(它也工作正常),我的结构在我的头文件中,所以它很高兴和认可。
我还用 gdb 和 printf 语句进行了测试,以确保 strcmp 是我发生段错误的地方,而且确实如此。在此先感谢您的任何建议:)
最佳答案
行内
srchbuff[i] = '\0';
你在 srchbuff 末尾后写了一个字节。
srch
指向的内存未初始化。所以任何事情都可能发生。
cur
也没有初始化。这意味着 cur
指向任何地方,cur->name
也是如此。
关于c - strcmp 处的段错误 - 可能会发出从结构传递指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433915/
java.lang.Throwable 的哪些子类可能被空语句抛出? 通过短语“空语句”,我指的是“无”、“分号”和“分号”: // .... A(); B(); C(); try { //
我是一名优秀的程序员,十分优秀!