返回信息流char s[] = "Hello world";
char *p = "Hello world";
用memmove(s,s+2,3)可以成功,但是用memmove(p,p+2,3) 就会出错 上面这两个语句是在内存分配方式上有区别吗。。。新手求指教。。。
这是一条镜像帖。来源:北邮人论坛 / cpp / #45062同步于 2010/10/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
问下这两个语句的区别。。。
mojie
2010/10/21镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
s是一个仅仅足以存放初始化字符串以及空字符'\0'的一维数组,数组中的单个字符可以进行修改,但s始终指向同一存储位置。另一方面,p是一个指针,其初值指向一个字符串常量,之后它可以修改以指向其他地址,但如果试图修改字符串的内容,结果是没有定义的