Linux: malloc()的指向指针发生指向偏移后,释放前需要将指针指向复原。
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <time.h>
void main()
{
unsigned int seed;
srand(seed);
int * p =(int *)malloc(sizeof(int)*10);
#define MAX 10for (int i = 0; i < MAX ; i++)
{p[i] = rand()%100;
}for (int i = 0; i < MAX ; i++)
{printf(" %p: %d\n",&p[i],p[i]);
}printf("p 地址: %p\n", p);for (int i = 0; i < MAX ; i++)
{// printf(" %p: %d\n",p,*p);// p++;printf(" %p: %d\n",p,*p++); //p++操作后指向发生变化}printf(" ++操作后p的地址: %p\n", p);p-=10;//需要将p指向复原再释放
printf(" 复原p的地址: %p\n", p);free(p);
}