关于c语言char*的问题

来源:互联网 发布:免费换ip软件 编辑:程序博客网 时间:2024/04/30 07:39
写好了一段char*内容,想动态替换掉。微笑
char info[] ="bytes read =       \n\bytes written =       \n\number of opens: \n\/dev/booga0 =        times\n\/dev/booga1 =        times\n\/dev/booga2 =        times\n\/dev/booga3 =        times\n\strings output: \n\booga! booga! =        times\n\googoo! gaga! =        times\n\wooga! wooga! =        times\n\neka! maka! =        times\n\",*temp="142339";int size,i;size = strlen(info);info += (size-13);while (*temp != '\0'){*info = *temp++;}


然而该死的不断在
*info++ = *temp++;

这里报错。

然而也没想出来是为什么。

后来试了一下直接malloc分配内存,然后不加任何东西,结果是可以的。

但是malloc了以后再让info = "adkfjlsdjkfls";然后再去替换,又错了。

难道写过的东西不能再写了?什么鬼!

然后我换成数组,就对了。

以后有时间再研究一下原因,现在先记录下来。


贴上正确的代码:

char info[] ="bytes read =       \n\bytes written =       \n\number of opens: \n\/dev/booga0 =        times\n\/dev/booga1 =        times\n\/dev/booga2 =        times\n\/dev/booga3 =        times\n\strings output: \n\booga! booga! =        times\n\googoo! gaga! =        times\n\wooga! wooga! =        times\n\neka! maka! =        times\n\",*temp="142339";int size,i;size = strlen(info);i = (size-13);while (*temp != '\0'){info[i++] = *temp++;}


0 0
原创粉丝点击