我在寫一個函數,它接受整數值和指向字符的指針。 該函數將整數值轉換爲二進制值並將其存儲在char指針中。 char指針長16字節。從函數返回數組
代碼片段:
void int2bin(u_int16_t addr_IP, char *Binary)
{
int count;
printf("IP1add = %d \n", Binary);
for (count = 0; count < 16; count++) {
if(addr_IP>0)
*(Binary + 15-count) = addr_IP & 0x1 ? '1':'0';
else
*(Binary + 15-count) = '0';
addr_IP>>=1;
}
}
int main(int argc, char *argv[])
{
u_int16_t senderIP_16[], u_int16_t receiverIP_16[];
char sender_IP_hi[16], sender_IP_low[16];
int2bin(senderIP_16[0], &sender_IP_hi);
int2bin(senderIP_16[1], &sender_IP_low);
}
在第一次調用函數,它返回正確的值。但是在第二遍中,第一遍的值被附加到第二遍,即sender_IP_low
的長度變爲32.
我該如何解決這個問題?
感謝
? – 2011-02-08 03:50:49
你用printf()打印嗎? – 2011-02-08 03:53:11
幾件事:1 /`main`第一行中的逗號是什麼? 2 /爲什麼沒有指定數組的長度? – Peyman 2011-02-08 03:58:40