读到这里,我怎么malloc的内存malloc/free。可以从释放的内存
char *convertToPostfix(char **infixExpr)
{
char *postfixExpr = (char *) malloc(strlen(*infixExpr) * sizeof(char) * 2);
...
return postfixExpr;
}
在这里,我如何使用这块内存:
char *subexpr = convertToPostfix(infixExpr);
free(subexpr);
while (*subexpr)
postfixExpr[i++]=*subexpr++;
为什么这个程序能正常工作后free(subexpr);
我的意思是为什么它可以遍历在解放后?
我是否正在以这种方式正确地工作,当函数返回一些内存,在另一个上下文中释放?
请参阅http://stackoverflow.com/a/6445794/1025391(标记为C++,但大多数也适用于您的情况) – moooeeeep 2012-03-12 19:48:09
修复代码中的错误并且神秘将消失。 Buggy代码会做出奇怪和不可预知的事情,这并不令人意外。 – 2012-03-12 19:48:45