В моем проекте есть функция 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);