#include "stdafx.h"
void dump_line( unsigned char *top_address )
{unsigned char *p;
// 「%p」はポインタの表示
printf( "%p :", top_address );
// 以下,16進数での表示を16バイト分行う
for ( p = top_address; p < (top_address + 16); p++ ) {
// 「%2x」は16進数2桁での表示
printf( " %2x", *p );
}
// メモリの中身が,16進数で 20 以上 7e 以下のときは,「文字」もで表示
printf( "|" );
for ( p = top_address; p < (top_address + 16); p++ ) {
// 「%c」は文字(1文字)での表示
if ( ( (*p) >= 0x20 ) && ( (*p) < 0x7e ) ) {
printf( "%c", *p );
}
else { printf( "." );
}
}
printf( "\n" );
}
// 16進数でメモリの中身を表示
void dump( unsigned char *address, int len )
{unsigned char *current;
printf( "16 進数でメモリの中身を表示\n" );
printf( " : 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef\n" );
printf( "---------:------------------------------------------------|----------------\n" );
current = (unsigned char*) ( ( ( (int) address ) / 16 ) * 16 );
while ( current < (address + len) ) {
dump_line( current );
current = current + 16;
}
return;
}
int _tmain()
{char s[] = "89771843";
int ch;
dump( (unsigned char*)s, 16 );
printf( "Enter キーを1,2回押すと,プログラムが終了します\n" );
ch = getchar();
ch = getchar();
return 0;
}32