关于c语言char*的问题

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值