我正在调整数组的指针以避免向后复制数组的所有内容。问题是我想在某个时候释放数据,这将产生分段错误,除非我将指针移回它的原始地址。有没有办法避免这种情况?因为如果移位是在函数内部执行的,调用函数可能不知道移位的幅度。
例子:
int i;
float * y = malloc(10*sizeof(float));
for(i=0;i<10;i++) y[i] = (float)i;
y += 2;
for(i=0;i<8;i++) printf("%d\n",y[i]);
free(y); // this will generate a segmentation fault
y -= 2; free(y); // this is OK, but I would like to avoid it
我对这里的期望是不是太高了?