realloc的一个陷阱

#include
#include
#include
void main() {
    int *p = (int *)malloc(2 * sizeof(int));
    int *t = p + 1;
    printf("p的值:%d\n", p);
    printf("t的值:%d\n", t);
    p = (int *)realloc(p, 6 * sizeof(int));
    printf("p的值:%d\n", p);
    printf("t的值:%d\n", t);

}

realloc的一个陷阱_第1张图片

p在realloc后整体挪窝了,它不管他的好伙伴t了,t还在原地傻傻地等待。但是p还不算特别坏,它没有带走t所指的内容,相当于是p 又复制了一份走了。

你可能感兴趣的:(编程陷阱)