У меня есть этот код в Arduino
void function(int x){
char* response="GET /postTEST.php?first=";
char strx[2] = {0};
int num = x;
sprintf(strx, "%d", num);
original=response;
strcat(response,strx);
Serial.println(response);
//memset(response,'\0',80);
}
По сути, это присоединение целого числа к моей строке сообщения. К сожалению, оно как-то растет и становится
GET /postTEST.php?first=0
GET /postTEST.php?first=01
GET /postTEST.php?first=012
по мере увеличения я.
Как так?
Вы не можете изменить строковый литерал. Строковые литералы являются постоянными.
Вы должны объявить его как массив с достаточным пространством для добавления числа.
Вы также делаете некоторые ненужные шаги, я предлагаю что-то вроде этого:
void function(int x)
{
char response[64];
sprintf(response, "GET /postTEST.php?first=%d", x);
Serial.println(response);
}
Других решений пока нет …