u010365595 2014-10-10 13:43 采纳率: 0%
浏览 2018

memset 指针传递问题

void myalloc(char x,int n)
{
x = (char
)malloc(n*sizeof(char));
memset(x,0,n*sizeof(char))
}
int main()
{
char *g="String";
myalloc(g,20);
cout<<g<<endl;//输出为什么还是"String"?

}
memset之后为什么g依旧输出为string?而没有初始化

  • 写回答

1条回答 默认 最新

  • 小邓在路上 2014-10-11 01:06
    关注

    很显然啊,第一个问题:值传递还是址传递的问题,你用的是值传递,你传进去的是g这个指针而已,所以说你改变指针根本没有对指针指向的空间进行改变,解决办法就是传地址,传指针的地址,第二个问题,你的函数myalloc 的第一个参数的类型是char 类型的,但是系统函数malloc 返回的是void * 类型的指针,你确定你编译可以通过。

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题