我在我的项目中创建一个结构并返回指针的c函数。c内存泄漏问题
typedef struct object
{
float var1;
float var2;
}
Object;
Object *createObject(float newVar1, float newVar2)
{
Object *object; //create new structure
object = (Object*)malloc(sizeof(Object)); //malloc size for struct object
if(object != NULL) //is memory is malloc'd
{
object->var1 = newVar1; //set the data for var1
object->var2 = newVar2; //set the data for var2
return object; //return the pointer to the struct
}
return NULL; //if malloc fails, return NULL
}
现在的结构被使用过了一阵,我想删除这个结构之后,我做了这个功能:
void deleteMarnix(Object *objectPointer)
{
free(objectPointer); //free the memory the pointer is pointing to
objectPointer = NULL; //stop it from becomming a dangling pointer
}
这最后的代码段展示了如何使一个对象,使用它,并尝试删除它,但是,它似乎并没有完全释放内存。我究竟做错了什么?
Object *object = createObject(21.0f, 1.87f);
//do things here with object.
deleteMarnix(object);
你需要显示你如何知道它泄漏,你可能会看到CRT预先分配。 – Puppy 2010-11-27 13:02:37
你是什么意思,“它似乎并没有完全释放内存”? – 2010-11-28 12:34:05