C语言数组问题

一直以来,自以为C语言用得还算熟悉,没想到今天居然碰壁了,看来又得去复习一下基础。今以此文为备忘。

1 int main(void)
2 {
3     char *buf = "1102.453";
4     char a[8];
5     memcpy(&a+3, buf + 3, 1);
6     printf("%c\n", a[3]);
7     return 0;
8 }

以上一小段代码的问题在于memcpy的第1个参数,由于a已经是一个数组,因此&a+3为a[24]的地址了。

此结果已与原想法相去极远。正确的写法应该是a+3。一个极小的问题,但却花掉一些时间去调试。

 

posted on 2013-08-29 13:40  linxiaoqun  阅读(202)  评论(0)    收藏  举报

导航