gpt4 book ai didi

c - 我无法理解函数中的错误

转载 作者:行者123 更新时间:2023-11-30 20:10:31 25 4
gpt4 key购买 nike

这个函数在使用几次后出现了一个奇怪的错误,我真的不明白其背后的原因。

    char *get_range(char *str,int min,int max){
char *_res=(char *)malloc(sizeof(str));
int cur=0;
while (min<max){
_res[cur]=str[min];
min++;
cur++;
}
return _res;
}

问题是,使用此函数几次后,输出会带有额外的字符,我不明白为什么。

注意:附加字符均由函数beffor返回

最佳答案

  char *_res=(char *)malloc(sizeof(str));

是错误的。 sizeof(str) 正在测量 char 指针的大小。这是 4 或 8(通常),具体取决于您的系统(32 位或 64 位)。

你需要

char *_res=(char *)malloc(strlen(str) + 1);

strlen返回字符串的字符个数,结尾的0需要加1;

其次,您必须在末尾添加一个终止零,请执行以下操作:

_res[cur] = '\0'; 

返回前

关于c - 我无法理解函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45112226/

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