アプリ版:「スタンプのみでお礼する」機能のリリースについて

メインで引数をもらい、それをパラメタチェック関数に
渡す場合、どのような形で渡せばいいですか?
※メインでargvを変数に格納しないで、
そのままargvを関数に渡す方法が分かりません。

int prm_chk(char *argv[])
{
/* 処理省略 */
}

int main (int argc, char *argv[])
{

/* 処理省略 */

/* 以下のパラメタ(argv)の渡し方 */
if(prm_chk(*argv[]) != 0){
exit(-1);
}

exit(0);

}

A 回答 (4件)

#1です。


argcも渡すべきだという意見が出ていますので、少し補足します。

argcを渡せば、それはそれで便利ですが、必ずしも必須ではありません。
argv[argc]はNULLになることが保証されているので、配列の終端は判別できます。argcがあれば、それなりに役に立つので、目的次第です。
    • good
    • 0

回答は他の方がされているので補足を



argv[] は char * つまりアドレスが格納された配列ですが、
要素がいくつかるかは不定です。

そこで argc に有効なデータがいくつ格納されているかが、
格納されています。

argc で指定された以上のインデックスであくせすすると、
最悪の場合、CPU例外が発生します。
    • good
    • 0

prm_chk(*argv[]) != 0



prm_chk(argv) != 0
ですかね。
int prm_chk(char *argv[])もやるなら
int prm_chk( int argc, char *argv[])
という風にしたほうが良いかと。
    • good
    • 0

誤)if(prm_chk(*argv[]) != 0){



正)if(prm_chk(argv) != 0){
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!