OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4201|回复: 2

原子哥求助关于c语言

[复制链接]

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2014-9-18
在线时间
2 小时
发表于 2014-12-12 17:17:50 | 显示全部楼层 |阅读模式
5金钱


u8 *res1;
u8 *res2;
u8 *res3;
u8 save1[4]={0};
u8 save2[4]={0};
u8 save3[4]={0};
void transfer(u8 i,u8 y,u8 z)
{ u8 add1[1]={"0"};
  u8 add2[4]={"\r\n"};
  u8 *ps;
  ps=&add1[0];
 res1=&save1[0];
 sprintf((char*)res1,"%s%d","#",i);
 res2=&save2[0];
 sprintf((char*)res2,"%s%d"," P",y);
  strcat((char*)res2,(const char*)ps);
  res3=&save3[0];
 sprintf((char*)res3,"%s%d"," T",z);
  strcat((char*)res3,(char*)ps);
 
  strcat((char*)res1,(char*)res2);
  strcat((char*)res1,(char*)res3);
  ps=&add2[0];
 strcat((char*)res1,(char*)ps);
}

 

int main(void)
{
 delay_init();
 USART1_Config();

 while(1)
 {
  transfer(0,150,50);
 printf("#0 P1500 T500 \r\n");//
  printf("%s",res1);
 }
 
 
}我想使第二个 printf和第一个printf输出一样
运行后第一个23 30 20     50 31 35 30 30 20            54 35 30 30 0D 0A  对的
第二个              20     50 31 35 20 54 35 30 30 20   54 35 30 30 0D 0A 错的
怎么样把它们弄成一样啊?

最佳答案

查看完整内容[请看2#楼]

你res1分配的内存本来就不足,你还strcat这么加,不死机算运气好了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-12 17:17:51 | 显示全部楼层
你res1分配的内存本来就不足,你还strcat这么加,不死机算运气好了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2014-9-18
在线时间
2 小时
 楼主| 发表于 2014-12-14 09:04:13 | 显示全部楼层
恩恩,谢谢原子哥。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 21:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表