将 unsigned char* 附加到 unsigned char*
Append unsigned char* to unsigned char*
我想将一个 unsigned char* 附加到另一个 unsigned char* 以创建一个可以返回给父函数并进行解析的长字符串。我有以下内容:
unsigned char *bytes = NULL;
unsigned char *retVal = NULL;
int intVal1, intVal2;
bytes = readRegister(0x01);
if ( bytes != NULL )
{
intVal1 = (*(int *)bytes) & 0xffffffff;
printf("intVal1 = 0x%x\n", intVal1); //intVal1 = 0x7fffac00
}
bytes = readRegister(0x02);
if ( bytes != NULL )
{
intVal2 = (*(int *)bytes) & 0xffffffff;
printf("intVal2 = 0x%x\n", intVal2); //intVal2 = 0x7fffac11
}
如何连接 intVal1 和 intVal2 的值,使 retVal 等于“7fffac007fffac11”?或者有没有办法在每次调用 readRegister() 后将 "bytes" 连接到 retVal?
非常感谢任何帮助!
您想分配一些内存并使用 snprintf
生成您的 return 值。
调用者将负责使用 free
:
释放 return 值
retVal = malloc(17);
if (retVal) snprintf(retVal, 17, "%08x%08x", intVal1, intVal2);
return retVal;
我想将一个 unsigned char* 附加到另一个 unsigned char* 以创建一个可以返回给父函数并进行解析的长字符串。我有以下内容:
unsigned char *bytes = NULL;
unsigned char *retVal = NULL;
int intVal1, intVal2;
bytes = readRegister(0x01);
if ( bytes != NULL )
{
intVal1 = (*(int *)bytes) & 0xffffffff;
printf("intVal1 = 0x%x\n", intVal1); //intVal1 = 0x7fffac00
}
bytes = readRegister(0x02);
if ( bytes != NULL )
{
intVal2 = (*(int *)bytes) & 0xffffffff;
printf("intVal2 = 0x%x\n", intVal2); //intVal2 = 0x7fffac11
}
如何连接 intVal1 和 intVal2 的值,使 retVal 等于“7fffac007fffac11”?或者有没有办法在每次调用 readRegister() 后将 "bytes" 连接到 retVal?
非常感谢任何帮助!
您想分配一些内存并使用 snprintf
生成您的 return 值。
调用者将负责使用 free
:
retVal = malloc(17);
if (retVal) snprintf(retVal, 17, "%08x%08x", intVal1, intVal2);
return retVal;