我有以下结构,我需要通过网络发送。
typedef struct {
u_int16_t dataSize;
u_int16_t *positions;
char *dataLoad;
} TransferData
position和dataLoad变量可以包含任意数量的整数和字符。
我试过这个,
TransferData m;
//adding data to the structure
size_t len = snprintf(NULL, len, "%p, %d, %s", m.positions, m.dataSize, m.dataLoad);
char *apstr = calloc(1, sizeof *apstr * len + 1);
if (!apstr) {
fprintf(stderr, "%s() error: virtual memory allocation failed.\n", __func__);
}
if (snprintf(apstr, len + 1, "%p,%d,%s",m.positions,m.dataSize,m.dataLoad) > len + 1) {
fprintf(stderr, "%s() error: snprintf returned truncated result.\n", __func__);
}
代码适用于char *和u_int16_t,但不适用于u_int16_t *。是否有任何方法可以将此结构转换为char数组?