急急急!!!一个字符串问题
来源: 互联网 发布时间:2015-09-22
本文导语: 源代码如下,问题是我想在main中显示Create_RHROrder拼装的RHROrder字符串,就是显示不出来 错误:段错误 #include "hm_Linux.h" /*=========================================================== * 产生读取寄存器命令 * 参数: * FuncCode...
源代码如下,问题是我想在main中显示Create_RHROrder拼装的RHROrder字符串,就是显示不出来
错误:段错误
#include "hm_Linux.h"
/*===========================================================
* 产生读取寄存器命令
* 参数:
* FuncCode - 功能码
* StartAddr - 起始地址(2字节)
* Offset - 偏移量(2字节)
* RHROrder - 命令字符串
* 返回:
* Succes - 命令字符串长度 Error - 错误信息
===========================================================*/
int
Create_RHROrder(int FuncCode, int StartAddr, int Offset, char* RHROrder) {
char* tmpOrder;
int len = 5; //命令长度为5
int i;
//动态分配数组空间
tmpOrder = (char *)malloc(len * sizeof(char));
memset(tmpOrder, '', len);
//功能码
tmpOrder[0] = FuncCode;
//起始地址
tmpOrder[1] = (StartAddr >> 8) & 0xff;
tmpOrder[2] = StartAddr & 0xff;
//偏移量
tmpOrder[3] = 0;//(Offset >> 8) & 0xff;
tmpOrder[4] = Offset & 0xff;
tmpOrder[len] = '';
RHROrder = (char *)malloc(len * sizeof(char));
memcpy(RHROrder, tmpOrder, len);
//free(tmpOrder);
return len;
}
int
main (int argc, char **argv) {
char *tmp;
int len;
int i;
len = Create_RHROrder(0x03, 0x1009, 0x0003, &tmp);
printf ("len: %dn", len);
for (i=0; i
错误:段错误
#include "hm_Linux.h"
/*===========================================================
* 产生读取寄存器命令
* 参数:
* FuncCode - 功能码
* StartAddr - 起始地址(2字节)
* Offset - 偏移量(2字节)
* RHROrder - 命令字符串
* 返回:
* Succes - 命令字符串长度 Error - 错误信息
===========================================================*/
int
Create_RHROrder(int FuncCode, int StartAddr, int Offset, char* RHROrder) {
char* tmpOrder;
int len = 5; //命令长度为5
int i;
//动态分配数组空间
tmpOrder = (char *)malloc(len * sizeof(char));
memset(tmpOrder, '', len);
//功能码
tmpOrder[0] = FuncCode;
//起始地址
tmpOrder[1] = (StartAddr >> 8) & 0xff;
tmpOrder[2] = StartAddr & 0xff;
//偏移量
tmpOrder[3] = 0;//(Offset >> 8) & 0xff;
tmpOrder[4] = Offset & 0xff;
tmpOrder[len] = '';
RHROrder = (char *)malloc(len * sizeof(char));
memcpy(RHROrder, tmpOrder, len);
//free(tmpOrder);
return len;
}
int
main (int argc, char **argv) {
char *tmp;
int len;
int i;
len = Create_RHROrder(0x03, 0x1009, 0x0003, &tmp);
printf ("len: %dn", len);
for (i=0; i