Это мой код:Почему я получаю ошибку «размер хранилища неизвестен» в этой программе?
#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
1. Это не C код, как ваши предполагает, что это больше похоже на C++. 2. Использование глобальных переменных считается плохой практикой. –
Кроме того, если вы действительно хотите, чтобы ваша программа была C, а не C++, переименуйте ее так, чтобы она имела только .c в качестве расширения. Здесь ваш компилятор принимает это как C++. –