title: Libcurl write data to array
body: <p>I've really searched this. I've seen examples of how you can download and write data to a file with libcurl but I don't know how to write them to an array</p>
  
  <p>that's the code I have so far:</p>
  
  <pre><code>static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
  {
  
  int written = fwrite(ptr, size, nmemb, (FILE *)stream);
  return written;
  }
  
  int main(void)
  {
  CURL *curl_handle;
  FILE *bodyfile;
  static const char *headerfilename = "head.out";
  FILE *headerfile;
  static const char *bodyfilename = "body.out";
  
  curl_global_init(CURL_GLOBAL_ALL);
  
  /* init the curl session */
  curl_handle = curl_easy_init();
  
  /* set URL to get */
  curl_easy_setopt(curl_handle, CURLOPT_URL,"http://example.com/");
  /* no progress meter please */
  curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);
  
  /* send all data to this function  */
  curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);
  
  /* open the files */
  headerfile = fopen(headerfilename,"w");
  if (headerfile == NULL) {
      curl_easy_cleanup(curl_handle);
      return -1;
  }
  bodyfile = fopen(bodyfilename,"w");
  if (bodyfile == NULL) {
      curl_easy_cleanup(curl_handle);
      return -1;
  }
  
  /* we want the headers to this file handle */
  curl_easy_setopt(curl_handle,   CURLOPT_WRITEHEADER, headerfile);
  
  /* we want the body to this file handle */
  curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, bodyfile);
  
  /* get it! */
  curl_easy_perform(curl_handle);
  
  /* close the header file */
  fclose(headerfile);
  fclose(bodyfile);
  return 0;
  }
  </code></pre>