Я пытаюсь прочитать страницу HTTP и сохранить всю страницу в виде строки. В то время как reallo c () памяти, происходит ошибка, заявляя, что: reallo c (): неверный следующий размер: 0x0000000001505e10 *** ...
Ниже приведен мой код, заранее спасибо
char* get_http(int my_socket, char* buffer){
char* http_page = calloc(BUFFER_SIZE, sizeof(char));
assert(http_page);
int cur_size = BUFFER_SIZE;
int cur_len = 0;
// read the http, and write into http_page
bzero(buffer, BUFFER_SIZE);
while (read(my_socket, buffer, BUFFER_SIZE - 1) != 0){
// if the size if not enough, reallocate the memory
if (cur_len + strlen(buffer) >= cur_size){
cur_size = cur_size* 2;
http_page = (char*)realloc(http_page, cur_size);
assert(http_page);
}
cur_len += strlen(buffer);
strcpy(http_page + cur_len, buffer);
bzero(buffer, BUFFER_SIZE);
}
return http_page;}