试图从堆中释放内存时,Project.exe触发了一个断点

问题描述

typedef struct Room
{
    int     number;             //the room number
    float   cost_for_night;     //how much does the room cost per night?
    int     available;          //is the room available now?
    char* type;             //room type - free text
} Room;

Room* CreateNewRoom(int _number,float _cost,int _available,const char* _type)
{
    // create new room with the data we got as varibales
    struct Room* r = (struct Room*)malloc(sizeof(struct Room)); // try allocate memory for the room pointer
    if (r == NULL)
    {
        // if failed,release the memory and return null
        free(r);
        return NULL;
    }
    r->type = (char*)malloc((strlen(_type) + 1) * sizeof(char)); // try allocate memory for the type pointer
    if (r->type == NULL)
    {
        // if failed,release the memory and return null
        free(r->type);
        free(r);
        return NULL;
    }
    // if seceeded,fill the room with the data from the user
    r->number = _number;
    r->cost_for_night = _cost;
    r->available = _available;
    strcpy_s(r->type,strlen(_type) + 1,_type);
    return r; // return the room
}

void FreeRoom(Room* rm)
{
    free((*rm).type);
    free(rm);
}

我正在尝试从堆中释放内存,但是每次我尝试释放房间类型时,它都达到了一个断点。 我已经放置了Room的结构,我添加了一个具有CreateRoom功能的新房间,最后尝试释放内存。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...