[C++] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
char *pmem1;
char *pmem2;
int i;
pmem2 = pmem1 = (char *)malloc(10);
for (i = 0; i < 10; i++)
*pmem2++ = 'X';
pmem2 = (char *)realloc(pmem1, 5);
pmem1 = pmem2;
for (i = 0; i < 5; i++) {
if (*pmem2++ != 'X') {
printf ("Error:!\n");
exit (EXIT_FAILURE);
}
}
printf ("realloc for redusing 5 bytes succeeded\n");
pmem2 = (char *)realloc(pmem1, 15);
pmem1 = pmem2;
for (i = 0; i < 5; i++) {
if (*pmem1++ != 'X') {
printf ("Error:realloc changed memory contents!\n");
exit (EXIT_FAILURE);
}
}
printf ("realloc 15 bytes succeeded!\n");
free(pmem2);
return 0;
}