我不能从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) = ' '
中发生,并导致段故障。