有没有一种方法可以检查指针是否以前是空闲的?
例如,如果我运行以下代码:
async function liveFeed_update() {
var symbol_in_table = "...";
var num_row = 0;
var results = await con.query(symbol_in_table);
results.forEach(function(result) {
num_row = + result[0].total;
console.log("Number of Rows in inner level:", num_row);
});
console.log("Number of Rows in outer level:",+ num_row);
}
我得到了错误:
int* p = (int*)malloc(1000);
free(p);
p = (int*)realloc(p, 2000);
我希望有机会在致电*** Error in `./main': realloc(): invalid old size: 0x00000000012ab010 ***
...
之前检查p
,以避免此类错误。
答案 0 :(得分:9)
这里是您的检查方式:您之前有没有释放它?如果是这样,它已被释放。如果没有,那么
C不会为您跟踪此操作,因此,如果您无法确定自己是否已释放关联的内存,则可能想NULL
free
的所有指针。
C只会做最少的事情,除非您明确指出要它做更多的事情:
free(p);
p = NULL;
现在您可以进行测试,但请记住,这是您的责任,因此,如果此行为很重要,则必须始终如一。