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입니다.uint16_t를 uint32_t에 넣으십시오.
편집 함수 호출 : char * tmp; uint8_t i; i = 9; uint16_t 포트; 포트 = 1234; tmp = createMSG (i, port);
출력 : 생성 MSG : ID : 2 동의 : 0 포트 0
이 함수를 어떻게 호출하는지 보여줄 수 있습니까? – theWalker
귀하의 의견이 아니라 printf()의 결과를 복사 할 수 있습니까? – theWalker
완료. 버프 + 2/+ 3에 0을 놓고 끝까지 가져갈 수 있습니까? – user1324258