gpt4 book ai didi

c - strcmp 给出段错误

转载 作者:行者123 更新时间:2023-12-03 14:30:39 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Crash or "segmentation fault" when data is copied/scanned/read to an uninitialized pointer

(5 个回答)


5年前关闭。




这是我给出段错误的代码

#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

int main(void) {
char *get;
scanf("%s", get);
int k = strcmp("sachin", get);
printf("%d", k);
}

谢谢你的帮助;

最佳答案

char *get;

上面的语句定义了 get成为指向字符的指针。它可以存储类型为 char 的对象的地址。 ,不是字符本身。问题在于 scanfstrcmp称呼。您需要定义一个字符数组来存储输入字符串。
#include <stdio.h>
#include <string.h>

int main(void) {
// assuming max string length 40
// +1 for the terminating null byte added by scanf

char get[40+1];

// "%40s" means write at most 40 characters
// into the buffer get and then add the null byte
// at the end. This is to guard against buffer overrun by
// scanf in case the input string is too large for get to store

scanf("%40s", get);
int k = strcmp("sachin", get);
printf("%d", k);

return 0;
}

关于c - strcmp 给出段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22527152/

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