完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我定义了一个指针:
char *p = "1234"; 然后我在这个函数里面把它指向另一个数组: void fun_1(void) { char buf[5] = "5678"; p = buf; printf("%sn", p); /* 这边用printf打印出来,p是指向5的,输出5678*/ } 然后我在另一个函数里调用: void fun_2(void) { printf("%sn", p); /*这边打印出来会有问题*/ } 然后我换了种方式: char p[5] = "1234"; void fun_1(void) { char buf[5] = "5678"; strcpy(p, buf); /* 这边没改变地址,改变了指针p的值*/ } void fun_2(void) { printf("%sn", p); /*这边就ok了*/ } 第一种方式是传递地址,为啥不行呢? |
|
相关推荐
3个回答
|
|
支持1楼看法 把buf[5]改成全局变量 肯定没问题
|
|
|
|
谢谢啦,确实是这样呀,我居然没看出来,有时候确实会迷糊呀。
|
|
|
|
局部变量被注销了。打印出来可能是乱码
|
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4444 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
315浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
303浏览 2评论
315浏览 2评论
320浏览 2评论
356浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 09:03 , Processed in 1.008401 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号