问题描述
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 (将#修改为@)