reallocの使い方

戻る

::::::::::::::
realloc-test.c
::::::::::::::
/**
* $Id: realloc.html,v 1.1 2009/06/22 16:12:22 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

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

    const int UNITSIZE = 32;
    char *myBuf;
    char *tmp, *saved;

    int i;
    int len = 0;
    for ( i = 0;i < 10;i++ ) {
        len += UNITSIZE;
        if ( i == 0 ) {
            myBuf = ( char * ) malloc( len );
        } else {
            saved = myBuf;
            tmp = ( char * ) realloc( myBuf, len );
            if ( tmp != NULL ) {
                myBuf = tmp;
            } else {
                myBuf = saved;
                perror( "malloc()" );
            }
        }

        char *p = myBuf;
        int j;
        for ( j = 0;j < len;j++ ) {
            *p++ = 'A' + i + j % UNITSIZE;
        }

        printf( "%d: ", i );
        fflush( stdout );
        write( 1, myBuf, len );
        printf( "\n" );
        fflush( stdout );

    }

    return 0;

}

■実行結果

0: ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
1: BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a
2: CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
3: DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
4: EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd
5: FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde
6: GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef
7: HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
8: IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
9: JKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi

戻る

inserted by FC2 system