从main文件以外的其他文件中的函数返回指向字符数组的指针



我不能从main函数以外的其他文件返回指向字符数组的指针。它总是说"分割错误"。但是如果我把函数写在和main相同的文件中,就没有问题了。

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

    char ch[5]={'a','b','c','d',''};
    char *res=retchararray(ch);
    printf("%sn",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)='';
    return str;
}

我用netbeans在Mac OS上做C编程。

谁能告诉我出了什么问题?还是我搞错了?

函数rechararray溢出了数组。您使用的内存超过了预留的内存。这在*(str+len+1) = ''中发生,并导致段故障。

最新更新