我是這個主題的新手。 我想將整數數組轉換爲字符串。然後將字符串轉換爲整型數組,以檢查是否獲得相同的輸入。將字符串轉換爲整數數組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