如何解决试图从堆中释放内存时,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 举报,一经查实,本站将立刻删除。