gpt4 book ai didi

c - 从不同于 main 的不同文件中的函数返回指向字符数组的指针

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

除了 main 函数之外,我无法从其他文件返回指向字符数组的指针。它总是说“段错误”。但是如果我把这个函数和main写在同一个文件里,就没有问题了。

/* this is in mainfunc.c file*/
int main()
{


char ch[5]={'a','b','c','d','\0'};
char *res=retchararray(ch);
printf("%s\n",res);/*I get segmentation fault only when I use this printf*/

}

/* this function is in other file newfile.c */

char *retchararray( char *p){

char *str;
str=p;
unsigned int len=strlen(p);

*(str+len)='e';
*(str+len+1)='\0';

return str;

}

我在 Mac OS 上使用 netbeans 进行 C 编程。

有人能告诉我这是什么问题吗?或者我在这里做错了什么?

最佳答案

函数 retchararray 溢出了你的数组。您使用的内存比保留的多。这发生在 *(str+len+1) = '\0' 中并导致段错误。

关于c - 从不同于 main 的不同文件中的函数返回指向字符数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6698619/

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