我对这个话题是新手。我正在尝试将整数数组转换为字符串,然后将字符串转换为整数数组以检查是否得到相同的输入。
gint16 frame[5] = {10, 2, 3, 7, 5};
char *str = malloc(sizeof(char) * (sizeof(frame)+1));
char *strp = str;
size_t j;
for (j= 0; j < sizeof(frame); j++) {
snprintf(strp, 4, "%02x", frame[j]); //hexadecimal
strp++;
}
// from hexa string to 16 bit integer array
gint16 n_oframe[5];
size_t i_m;
for (i_m = 0; i_m < 5; i_m++) {
char *d = (char*)malloc(sizeof(gint16));
strncpy(d,str,2);
n_oframe[i_m] = atol(d);
str = str + 2;
free(d);
}
当我尝试打印n_oframe的值时,结果不正确。请帮助我。
sizeof(char) * (sizeof(frame)+1)
应该返回什么?特别是考虑到frame
的类型。 - Eugene Sh.sizeof frame / sizeof frame[0]
。 - Weather Vanefree(str);
会导致崩溃,因为您已经增加了 str 的值。 - Karthick