>>845 >>812-814は、>>842の修正を取り込んで実行してね。
>>842は%08xを%016xに修正する必要がありそうだけど。
dump()はsizeof(int)が8でも大丈夫なように修正。
void dump(void *p, int n)
{
int i;
unsigned char *data = (unsigned char *)p;

fprintf(stdout, "dumped start = %p\n", p);
fprintf(stdout, "%*s", 3 + sizeof(int) * 2, "");
for (i=0;i<16;i++){
fprintf(stdout, "%02x ", (unsigned int )(data + i) & 0x0f);
if ((i + 1) % sizeof(int) == 0) {
fprintf(stdout, "| ");
}
}
fprintf(stdout, "\n");

for (i=0;i<n;i++) {
if (i % 16 == 0) {
fprintf(stdout, "%p ", data + i);
}
fprintf(stdout, "%02x ", data[i]);
if ((i + 1) % sizeof(int) == 0) {
fprintf(stdout, "| ");
}
if ((i + 1) % 16 == 0) {
fprintf(stdout, "\n");
}
}
}