在包含指向unsigned ints数组的指针的结构上使用free,用数据填充数组

时间:2013-03-25 17:19:28

标签: c malloc free

(我的问题的简化版,在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 debug观察变量状态:

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->阵列[1] = 0
  d->阵列[2] = 31
  d-> array [3] = 0

为什么d->数组得到地址值?

0 个答案:

没有答案