strcat не смывает

У меня есть этот код в 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
по мере увеличения я.

Как так?

0

Решение

Вы не можете изменить строковый литерал. Строковые литералы являются постоянными.

Вы должны объявить его как массив с достаточным пространством для добавления числа.

Вы также делаете некоторые ненужные шаги, я предлагаю что-то вроде этого:

void function(int x)
{
char response[64];

sprintf(response, "GET /postTEST.php?first=%d", x);

Serial.println(response);
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]