这是我的代码:为什么在这个C程序中出现“存储大小未知”错误?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
char test[];
size_t write_data(char *ptr, size_t size, size_t nmemb, FILE *stream)
{
char buf[size*nmemb+1];
char * pbuf = &buf[0];
memset(buf, '\0', size*nmemb+1);
size_t i = 0;
for(; i < nmemb ; i++){
strncpy(pbuf,ptr,size);
pbuf += size;
ptr += size;
}
printf("%s",buf);
test=new test[size*nmemb+1];
return size * nmemb;
}
int main()
{
CURL *curl_handle;
curl_handle = curl_easy_init();
curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.google.com");
curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS ,1);
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION,&write_data);
curl_easy_perform(curl_handle);
curl_easy_cleanup(curl_handle);
return 0;
}
为什么我收到此错误:
../src/get_webpage.cpp:9: error: storage size of ‘test’ isn't known
../src/get_webpage.cpp: In function ‘size_t write_data(char*, size_t, size_t, FILE*)’:
../src/get_webpage.cpp:23: error: expected type-specifier before ‘test’
../src/get_webpage.cpp:23: error: expected ‘;’ before ‘test’
错误的问题:它不是动态内存分配 – pmod 2010-08-27 08:40:57
1.这不是C代码,您的建议,它更类似于C++。 2.使用全局变量被认为是不好的做法。 – 2010-08-27 09:05:23
此外,如果您确实希望程序是C而不是C++,请将其重命名为只有.c作为扩展名。在这里你的编译器将它作为C++。 – 2010-08-27 09:47:20