Код: Выделить всё
p1trr123=perevod_NUL123(NetConf123.port,&templen);
send(s,p1trr123,templen);Код: Выделить всё
unsigned char buf_perevod[6];
unsigned char templen;
unsigned char *p1trr123=buf_perevod;Спойлер
Код: Выделить всё
unsigned char* perevod_NUL123 (int a,unsigned char *len)
{
unsigned char *ptr;
unsigned char buf[5];
ptr=buf;
*len=5;
buf[0]=0x30;
buf[1]=0x30;
buf[2]=0x30;
buf[3]=0x30;
buf[4]=0;
while (a >= 10000)
{
a -= 10000;
++buf[0];
}
while (a >= 1000)
{
a -= 1000;
++buf[1];
}
while (a >= 100)
{
a -= 100;
++buf[2];
}
while (a >= 10)
{
a -= 10;
++buf[3];
}
buf[4]=0x30+a;
// buf[5]=0;
if(buf[0]==0x30){
ptr++;
*len=*len-1;
}
else{
return ptr;
}
if(buf[1]==0x30){
ptr++;
*len=*len-1;
}
else{
return ptr;
}
if(buf[2]==0x30){
ptr++;
*len=*len-1;
}
else{
return ptr;
}
if(buf[3]==0x30){
ptr++;
*len=*len-1;
}
else{
return ptr;
}
if(buf[4]==0x30){
ptr++;
*len=*len-1;
}
else{
return ptr;
}
return ptr;
}
Это всё нормально выдаёт.
Дальше мне надо просто передать значение которые находятся в указателе p1trr123 в функцию send
Но вот после того как я захожу в функцию send всё что находилось в p1trr123 сразу сбрасывается на какой-то муссор. Почему ?
Спойлер
Код: Выделить всё
unsigned int send(
unsigned char s, /**< the socket index */
unsigned char * buf, /**< a pointer to data */
unsigned int len /**< the data size to be send */
)
{
unsigned char status=0;
unsigned int ret=0;
unsigned int freesize=0;
..................
}
Код: Выделить всё
send(s,buf_perevod,templen);Код: Выделить всё
unsigned char buf_perevod[6];

