ポインタのポインタ

戻る

// $Id: pointer.html,v 1.1 2009/06/22 16:12:20 kishi Exp kishi $

int main() {

    /////////////////////////////////////////////////////////
    // ポインタの配列
    /////////////////////////////////////////////////////////
    char * month[ 3 ] = {		/* ポインタの配列の宣言 */
                            "January", "February", "March"
                        };

    char **ptr = month;
    int i = 0;
    for ( i = 0; i < 3; i++ ) {
        printf( "%s\n", *ptr );
        ++ptr;
    }
    printf( "\n" );

    /////////////////////////////////////////////////////////
    // ポインタのポインタ
    /////////////////////////////////////////////////////////
    int size = 5;
    // char* 型の配列を5個動的に生成
    char **year = ( char ** ) malloc( size * sizeof( char * ) ) ;
    ptr = year;
    for ( i = 0;i < size;i++ ) {
        *ptr = ( char * ) malloc( 128 );
        sprintf( *ptr, "200%d", i );
        ++ptr;
    }

    ptr = year;
    for ( i = 0; i < size; i++ ) {
        printf( "%s\n", *ptr );
        ++ptr;
    }

}
戻る

inserted by FC2 system