相关疑难解决方法(0)

在c中使用realloc

void *realloc(void *pointer, size_t size);用来增加指针的大小.realloc是如何工作的?
它是否创建了一个nre地址空间,并将旧值复制到新的地址空间并返回一个指针这个地址?或者它只是分配更多的内存并将其绑定到旧内存?

c c++

3
推荐指数
1
解决办法
776
查看次数

realloc():下一个大小无效

我遇到了realloc函数的问题.我只使用C(因此没有向量)与LibCurl.我遇到的问题是我在write_data函数的第12次迭代中得到以下错误(realloc():无效的下一个大小)(我将函数作为回调传递给Curl,每次libcurl都调用它时一些要传回的数据(数据以块的形式传递)).

跟踪:

-Removed-

资源:

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <string.h>

char * Data; //stores the data
size_t  RunningSize;

int write_data( char *ptr, size_t size, size_t nmemb, void *stream )
{
    size_t ThisSize = (size * nmemb); //Stores the size of the data to be stored
    size_t DataLen = strlen( Data ); //length of the data so far

    RunningSize = (RunningSize + ThisSize ); //update running size (used as new size)

   Data = realloc( Data, RunningSize ); //get new …
Run Code Online (Sandbox Code Playgroud)

c libcurl realloc

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×2

c++ ×1

libcurl ×1

realloc ×1