写好了一段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++;
}