【发布时间】:2020-11-21 11:26:29
【问题描述】:
当使用posix_memalign 分配内存时,在指向已分配内存指针的指针上调用free 是否会释放所有已分配的内存?
在这个例子中,当我 free pointer_to_data 然后查看原始指针时,我仍然在所有分配中看到相同的数据,但不是最后一个!
unsigned char *data = nullptr;
unsigned int data_size = 512;
posix_memalign((void **) &data, 16, data_size);
memset(data, 0, data_size);
for (int i = 0; i < data_size; i++){
data[i] = 0xff;
}
unsigned char *pointer_to_data = data;
free(pointer_to_data);
for (int i = 0; i < data_size; i++){
printf( " %x ",data[i]);
}
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 10 0
【问题讨论】: