(我的问题的简化版本,在 netbeans 中开发)
我定义了这个结构:
typedef struct data_info
{
unsigned int* array; //containing ints at hex base
int x;
}data;
在主要功能中,我正在做这些:
data *d = malloc(sizeof(data);
d->array = malloc(4*sizeof(unsigned int));
使用此结构后,我想释放内存。我正在使用 netbeans 调试查看变量状态:
address of (d->array) -> 0x605670
free(d->array); //makes the array NULL
d->array = NULL;
free(d); //makes the pointer not NULL - adress is 0x605500
数组状态也是这样(十六进制值):
d->array[0] = 0
d->array[1] = 0
d->array[2] = 31
d->array[3] = 0
为什么 d->array 得到一个地址值?