我是这个主题的新手。 我想将整数数组转换为字符串。然后将字符串转换为整型数组,以检查是否获得相同的输入。将字符串转换为整数数组c
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)'应该给出什么?特别是考虑到“框架”的类型.. –
该数组的* length *(元素的数量)是'sizeof frame/sizeof frame [0]'。 –
'free(str);'会因为你增加了str而崩溃。 – Karthick