问题描述
我这里有一个小问题,但很烦人。
这是我的结构。
typedef struct tElem {
struct tElem *ptr;
int data;
} *tElemPtr;
typedef struct {
tElemPtr Act;
tElemPtr First;
} tList;
这是分配。这是堆损坏的地方。
tElemPtr newElemPtr = (tElemPtr)malloc(sizeof(tElemPtr));
.
.
.
free(newElemPtr);
但是当我使用实际结构的大小时,它不会发生。
tElemPtr newElemPtr = (tElemPtr)malloc(sizeof(struct tElem));
.
.
.
free(newElemPtr);
有人可以告诉我,我在这里想念什么吗?
谢谢。
解决方法
这是因为您正在分配一个指针而不是一个新的结构
SELECT p.id,row_to_json(r.id) FROM person p
FULL OUTER JOIN ref_first_nations_gov r on r.id = p.first_nation_id
WHERE p.application_id = 1 AND p.archived = false;
将返回指针的大小,而不是结构的大小。