這是我的代碼:爲什麼在這個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