gpt4 book ai didi

c - C 中的字符串和字符串函数

转载 作者:行者123 更新时间:2023-12-02 06:20:24 26 4
gpt4 key购买 nike

我写了以下内容:

#include <stdio.h>
#include <string.h>
char* getString();

char* getString(){
char str[10];
gets(str);
return str;

}

int main() {

char* s;
s=getString();
strcpy(s,"Hi");
puts(s);
return 0;
}

我知道 str 的长度必须小于 10,但即使我只写了“Hi”,也没有打印任何内容。据我所知,应该没问题。编译器说 fgets 很危险,不应该使用

屏幕上什么都不打印是什么原因?

最佳答案

char str[10];
// ...
return str;

这是错误的!!!局部变量在其作用域退出时失效;因此使用返回的数组是未定义的行为。你必须 malloc 一个字符串并返回它:

return strdup(str);

关于c - C 中的字符串和字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11517298/

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