C语言。 free()和改变指针

时间:2015-04-08 09:38:16

标签: c free

如果我按以下方式更改指针,free()会正常工作吗?

ar_byte_100=calloc(100,1);
ar_byte_100=&((unsigned long int*)ar_byte_100)[50];
free(ar_byte_100);

2 个答案:

答案 0 :(得分:2)

您必须将malloc()calloc()返回的确切指针传递给free()

答案 1 :(得分:2)

根据标准free(ptr)

ptr应该是由malloc() calloc()realloc()返回的指针,除此之外的任何内容都是未定义的行为。