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. Он печатает этот порт Null.put uint16_t in uint32_t
EDIT Вызов функции: символ * TMP; uint8_t i; i = 9; uint16_t порт; порт = 1234; tmp = createMSG (i, порт);
Выход: создано MSG: ID: 2 принимаем: 0 порт 0
можете ли вы показать, как вы называете эту функцию? – theWalker
Вы можете скопировать результат printf(), а не ваш комментарий? – theWalker
Готово. Могу ли я поместить нули в buff + 2/+ 3 и порт до конца? – user1324258