ضع uint16_t في uint32_t
سؤال
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
?
لا تنتمي إلى StackOverflow