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 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)