Salve ragazzi, ho scritto un breve codice, sappiate che
AURORAPATH è una directory locale
SERVERPATH è un url

codice:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){
	AddAutoStartKey(FALSE);
	if(!fopen(AURORAPATH, "r")){ // Se il client non esiste lo scarico
		ftpDownload(AURORAPATH, SERVERPATH);
	}
	return 0;
e

codice:
#include <curl\curl.h>
#include <stdio.h>

size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
    size_t written;
    written = fwrite(ptr, size, nmemb, stream); // il problema si presenta qui
    return written;
}

bool ftpDownload(const char * __localPath, const char * _serverPath){ // i puntatori puntano valori casuali
	CURL *curl;
    FILE *fp;
    CURLcode res;
    curl = curl_easy_init();
    if (curl) {
		remove(__localPath);
        fp = fopen(__localPath,"wb");
        curl_easy_setopt(curl, CURLOPT_URL, _serverPath);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
        fclose(fp);
    }
    return 0;
}

il punto è che una volta che richiamo la funzione ftpDownload(AURORAPATH, SERVERPATH) i valori AURORAPATH e SERVERPATH (const char * __localPath, const char * _serverPath) assumono valori casuali. Come è risolvibile il problema?