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
戻る