Я работаю над Arduino с WiFi-щитом. В настоящее время я делаю веб-запрос на щит. Я пытаюсь использовать malloc()
для записи ответа в кучу. Прямо сейчас, при распечатке _buffer
, я получаю ответ со всеми заголовками, за которыми следует куча мусора, как показано ниже:
char *NetConn::capture()
{
if (_client.available())
{
if (_buffer) // RELEASE ANY DATA HELD IN THE BUFFER IF THE BUFFER EXISTS
{
free(_buffer);
} // KEEP TRACK OF HOW LARGE THE BUFFER CURRENTLY IS TO PREPARE FOR ANY OVERFLOW
_buffer = (char *)malloc(_client.available() * sizeof(char)); // INITIALIZE THE BUFFER
Serial.println(_client.available()); // _client.available() returns 550 (size of payload)
char c;
int index = 0;
while (_client.available())
{
c = _client.read();
_buffer[index] = c;
index++;
}
int size = sizeof(_buffer) / sizeof(char);
Serial.println(size); // This is writing 2 for some reason
}
return _buffer;
}
Я должен отметить, что _client
является экземпляром Arduino WiFi-клиента.
Я очень плохо знаком с низкоуровневым управлением памятью и пытаюсь получить гр asp всего, что связано с управлением памятью. Я привык работать с комфортом языков высокого уровня; Однако я пытаюсь разветвляться. Пожалуйста, помогите мне понять, что здесь происходит с объяснением, так как я очень новичок. Спасибо!