سؤال

char* createMSG(uint8_t i,uint16_t port) {
char *buff; 
buff = (char*) calloc(1,6);
uint8_t id, tmp;
tmp = 0;
id = 2;
memcpy(buff, &id, sizeof(uint8_t));
memcpy(buff+1, &i, sizeof(uint8_t));
memcpy(buff+2, &port, sizeof(uint16_t));
memcpy(buff+2+2, &tmp, sizeof(uint16_t));
memcpy(buff+2+2+1, &tmp, sizeof(uint16_t));
printf("created SV_CON_REP: id: %d accept: %d port %d\n",*buff,*(buff+1),*    (buff+2));    return buff;
}

أحتاج إلى نسخ المنفذ في uint32_t.يطبع هذا المنفذ فارغًا.

يحرراستدعاء الوظيفة:شار* تمب;uint8_t i;أنا = 9؛منفذ uint16_t؛المنفذ = 1234؛tmp = createMSG(i,port);

انتاج:تم إنشاء MSG:بطاقة تعريف:2 قبول:0 منفذ 0

هل كانت مفيدة؟

المحلول

كنت نسخ هذه الوظيفة، ولكن تحت ويندوز.

giveacodicetagpre.

اتصل:

giveacodicetagpre.

printf النتيجة:

giveacodicetagpre.

(1234= 0x04d2، حيث 0xd2= 210)

لا تزال لا نسخ نتيجة المكالمات ونتيجة طباعة، ولكن تعليقك الخاص

نصائح أخرى

ماذا عن *((uint_16*)(برتقالي+2)) في printf?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top