本文介绍了char * pname =&quot; Harry&quot;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 以下声明; char * p; p =(char *)malloc(20); p =" harry" ; //< -------------它完全有效吗? 免费(p);Statement given below;char * p ;p = (char*) malloc(20);p = "harry" ; // <------------- Is it perfectly valid ?free(p);推荐答案 糟糕,你试图释放哈利。 - Ian Collins。Bad, you are attempting to free "harry".--Ian Collins. 这将试图释放string literalharry,而不是你之前分配的内存 。This will attempt to free the string literal "harry", not the memoryyou allocated earlier. 失去演员,除非你正在使用*非常旧的实现(在C89之前)。 Lose the cast, unless you''re working with a *very* old implementation (pre-C89). [snip] 或代码应该可以用于C和C ++。 / Peter[snip]Or the code should be usable with both C and C++./Peter 这篇关于char * pname =&quot; Harry&quot;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-19 11:58