メイン関数以外の別のファイルから文字配列へのポインタを返すことはできません。それは常に "セグメンテーションフォールト"と言います。しかし、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プログラミングを行っています。
いくつか問題を教えてください。または私はここでいくつかの間違いをしていますか?
余分な 'e'文字に対応するために 'char ch [5]'を 'char ch [6]'に変更しました。 – Ram