C语言指针赋值时出现错误,求解答。?
错误应该出现在第16行,invalid pointer。简单说,错误不在*p++,而是在第31行 return p;。问题在于你reutrn的不是malloc返回的开发者_开发知识库p 而是p+5。打印0.00 -0.00 0.00 0.00 0.00是因为第14行 show_arry(p1, 5);传的p1 实际是 p+5 不是p。然后第16行free的时候丢error,因为free 的是p+5 不是malloc 返回的p。
210****907 开发者_开发知识库 12小时前
此答案已被屏蔽
友情出演你的故事雾雨靡初见你掩 开发者_C百科 12小时前
p[i]运行正确是因为返回的p是malloc 返回的p,p的值没有改变。
精彩评论