【发布时间】:2015-04-08 09:38:16
【问题描述】:
如果我按以下方式更改指针,free() 会正常工作吗?
ar_byte_100=calloc(100,1);
ar_byte_100=&((unsigned long int*)ar_byte_100)[50];
free(ar_byte_100);
【问题讨论】:
-
不(或者可能因为它调用 UB)。你必须给
freecalloc返回的指针。 -
一个类似的问题,关于 C++ 而不是 C:stackoverflow.com/q/29192430/4200092
-
@GoBusto 恕我直言,这里不需要
C++,很多C骗子已经在那里了。 :-)