如何释放堆栈分配结构的malloc< d属性?

时间:2016-02-25 06:47:37

标签: c struct malloc free

typedef struct {
int s;
...
char* temp_status;
...
} param;

pararm MQK;
MQK.temp_status = (char*) malloc(sizeof(char)*14); 

...

free(&(MQK.temp_status));    <<< ERROR

错误报告

gcc ...
csim.c: In function ‘main’:
csim.c:348:9: error: attempt to free a non-heap object ‘MQK’ [-  Werror=free-nonheap-object]
 free(&(MQK.temp_status));
     ^
cc1: all warnings being treated as errors

我应该如何释放它?我必须free()堆栈分配结构的malloc()&lt; d属性。

1 个答案:

答案 0 :(得分:4)

MQK.temp_status是一个char指针。你可以使用malloc,然后就可以释放它了

free(MQK.temp_status); 
我应该是对的。

每个指针都有一个地址。你无法释放该地址&MQK.temp_status