似乎这一切都与内存泄漏有关,我使用了该函数_CrtDumpMemoryLeaks();
在malloc
功能之前和之后。在 malloc 之前我什么也得不到,当 _CrtDumpMemoryLeaks();
在 malloc 之后运行时,我得到以下内容:
Detected memory leaks!
Dumping objects ->
c:usersomers66documentsvisual studio 2013projectsassigment4assigment4 assignment4.c(150) : {66} normal block at 0x00F57338, 20 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.
The program '[7588] assigment4.exe' has exited with code 0 (0x0).
我想这意味着我对第 150 行有问题?但是我看不出有什么问题,这是该部分中的代码:
struct Unit* add_unit(struct Unit* tree, int base, int newId, char*name)
{
_CrtDumpMemoryLeaks();
struct UnitList* tempUnitList;
struct Unit* temp;
struct Unit* returnValue = NULL;
char* helpName;
if (tree == NULL)
{
temp = ((struct Unit*)(malloc(sizeof(struct Unit)))); (line 150)
_CrtDumpMemoryLeaks();
你能看出什么不对劲吗?
好吧,最终 这都是没有用malloc给字符串足够的空间的问题,我忘了为"\0"添加一个额外的字节,因为我根据特定的字符串使用了sizeof