对包含数组的结构使用 free()

Use free() for a struct containing array

typedef struct Rental {
    int nDays;
    float kmsDriven;
    char carLicensePlate[LICENSE_PLATE_LENGTH+1];
    char *clientName;
    char chargingCategory;
} Rental;

我得到了上层结构,并以这种方式创建了一个指向这些结构的指针数组:

Rental* rentArray[nRent];`

我尝试使用 free 它,但 rentArray[0] 仍然不为空。怎么了?

释放内存并不意味着清除内存。释放内存范围后,指向它的指针变得无效。但是,如果其他内存请求不需要,该范围仍然可以包含以前的数据。

然而,访问这样的范围通常会导致未定义的行为。