質問
char *args[256]があったとして、これを関数に渡し、これを返すような関数の宣言の仕方として次は正しいでしょうか?
C
1// プロトタイプ宣言 2char **fuction(char*[]) 3 4int main(){ 5 char *args[256]; 6 7 args = function(args); 8} 9 10char **funtion(char *args[]){ 11 int i; 12 for(i = 0; ; ++i){ 13 if(strstr(args[i], "*") != NULL) break; 14 if(args[i] == NULL) return args; 15 } 16 17 ( 省略 ) 18 return args; 19}
現状
printfでargs[i]を出力しようとしたり、実行してみたりしましたが、セグメンテーション違反になります。
原因はここではないかもしれませんが。
argsの構造
argsは例えば次のような構造をとっています:
args[0] = ls
args[1] = *
args[2] = NULL
いずれにせよ、この関数の書き方が正しいかどうか、また、間違っている場合にはどのようにすればよいかご教授ください。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。