プロが教える店舗&オフィスのセキュリティ対策術

ポインタで配列を引数として渡し、各要素に1を加算していくプログラムを書きたいのですが、
numを配列の要素数として、

関数の定義
void func_ary_add1(int *ary[ ], int num) ・・・・①
{
int i;

for(i = 0; i < num; i++){
ary[i] = ary[i] + 1; ・・・・②
}

}

①でaryという名前のintへのポインタとなりますか?
②でaryが示すアドレスを先頭とする配列に1を加算することになりますか?

A 回答 (1件)

第1引数で「 int *ary[ ] 」だと2階のポインタになります。

つまりこれは「配列のポインタ」になっています
なので、第1引数は「 int *ary 」として1階のポインタにするとよいですね


void func_ary_add1( int *ary , int num )
{
int ci=0 ; // カウンタ変数
for( ci=0 ; ci<num ; ci++ ) { // 配列数のループ処理
ary[ci] = ary[ci] + 1 ;
}
return ;
}

void main( )
{
int aaa[32] ;
// 初期化しておく
for( long ci=0 ; ci<32 ; ci++ ) { aaa[ci] = ci ; }
// 関数のテスト
func_ary_add1( aaa , 32 ) ;
// 結果を表示
for( long ci=0 ; ci<32 ; ci++ ) {
printf( "%d\n" , aaa[ci] ) ;
}
return ;
}
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています