ポインタ配列を関数に渡す
#include <stdio.h>
void dispA( char** s )
{
int i = 0;
printf( "sのアドレス%p:格納アドレス%p\n", &s, s );
while ( s[ i ] != NULL ) {
printf( "s[%d]のアドレス%p:格納アドレス%p:%s\n", i, &s[ i ], s[ i ], s[ i ] );
i++;
}
printf( "sのアドレス%p:格納アドレス%p\n\n", &s, s );
}
void dispB( char** s )
{
printf( "sのアドレス%p:格納アドレス%p\n", &s, s );
while ( *s != NULL ) {
printf( "sのアドレス%p:格納アドレス%p:%s\n", &s, *s, *s );
s++;
}
printf( "sのアドレス%p:格納アドレス%p\n", &s, s );
}
void main()
{
char *name[] = { "Candy", "Rolla", "Nancy", "Ann", "Eluza", NULL };
dispA( name );
dispB( name );
}
実行結果
sのアドレス0012FF18:sの格納アドレス0012FF68
s[0]のアドレス0012FF68:s[0]の格納アドレス0042201C:Candy
s[1]のアドレス0012FF6C:s[1]の格納アドレス00423030:Rolla
s[2]のアドレス0012FF70:s[2]の格納アドレス00422FBC:Nancy
s[3]のアドレス0012FF74:s[3]の格納アドレス00422FB4:Ann
s[4]のアドレス0012FF78:s[4]の格納アドレス00422FAC:Eluza
sのアドレス0012FF18:sの格納アドレス0012FF68
sのアドレス0012FF18:sの格納アドレス0012FF68
sのアドレス0012FF18:sの格納アドレス0042201C:Candy
sのアドレス0012FF18:sの格納アドレス00423030:Rolla
sのアドレス0012FF18:sの格納アドレス00422FBC:Nancy
sのアドレス0012FF18:sの格納アドレス00422FB4:Ann
sのアドレス0012FF18:sの格納アドレス00422FAC:Eluza
sのアドレス0012FF18:sの格納アドレス0012FF7C
Comments