释放变量后,我们可以使用它吗?

goo*_*ing -10 c

free(variable);,那我真的需要再次variable's使用价值.它会起作用吗?这是一种不好的做法吗?

小智 11

它会起作用吗?

IDK.这是未定义的行为,因此它可能会也可能不会起作用.

这是一种不好的做法吗?

是.

  • @bye然后只是**不要friggin'释放它...** (6认同)
  • @bye您需要重新设计您的应用程序,以便在释放它之后不需要它. (3认同)

Wil*_*ell 6

它会工作得很好!

int *f = malloc( 128 );
free( f );
printf( "F has the value: %p\n", f );
Run Code Online (Sandbox Code Playgroud)

现在,如果你想要的价值*f,这是另一个问题.

  • 这是技术上最不正确的答案! (9认同)
  • 请...为了所有那些无法理解指针和内存管理工作的人...为这个答案添加一个很大的警告.我不希望任何人使用它作为参考,为什么他所做的事情是可以接受的. (3认同)