Не могу понять, куда копать. Имеется следующий код (это часть, выделил только то, что имеет отношение к вопросу с отладочной печатью):
void httpClientReqBuf (char *url, unsigned char **buff);
char *URL1 = "http://192.168.0.10:9999/json_discret1";
char *URL2 = "http://192.168.0.10:9999/json_discret2";
unsigned char *buff1;
unsigned char *buff2;
while (1)
{
httpClientReqBuf (URL1, &buff1);
printf ("buff1 %s\n", buff1); // здесь печать buff1 проходит нормально
httpClientReqBuf (URL2, &buff2);
printf ("buff2 %s\n", buff2);
printf ("buff1 %s\n", buff1); // здесь печать buff1 не верна
printf ("buff2 %s\n", buff2);
}
вывод
buff1 {"DI_tag1":"1","DI_tag2":"0"}
buff2 {"DI_tag3":"0","DI_tag4":"1"}
buff1 �
buff2 {"DI_tag3":"0","DI_tag4":"1"}
buff1 {"DI_tag1":"1","DI_tag2":"0"}
buff2 {"DI_tag3":"0","DI_tag4":"1"}
buff1 {"DI_tag3":"0","DI_tag4":"1"}
buff2 {"DI_tag3":"0","DI_tag4":"1"}
buff1 {"DI_tag1":"1","DI_tag2":"0"}
buff2 {"DI_tag3":"0","DI_tag4":"1"}
buff1 {"DI_tag3":"0","DI_tag4":"1"}
buff2 {"DI_tag3":"0","DI_tag4":"1"}
Значение строки buff1 сразу за вызовом функции httpClientReqBuf (URL1, &buff1) верно, что и вижу при отладочной печати. Но после вызова функции httpClientReqBuf (URL2, &buff2) значение buff1 меняет свое значение и в разные запросы принимает всякий мусор, может принять и значение buff2. Объясните пожалуйста почему так происходит, почему затирается значение buff1 в памяти? Как мне это правильно реализовать ?