Dobrý den,
napsal jsem program, který počítá z určitého rozsahu různé kombinace od délky 1znaku do 255 znaku. ovšem, když jsem připojil knihovnu CURL a v tom samém programu si začnu hrát s metodou HTTP POST. Chtěl bych ty kombinace jednou posílat na server a ukládat do MySQL. Tak se mi u výpisu začne těchto kombincí objevovat znak "$".
Jde o to, že vypisuji do konzozole na windowsu {výsledek z HTTP serveru} --- {kombinace}
Tudíš by se mělo zobrazovat např "jo --- abcd" ... ale ve chvíly kdy použiju funkci curl_formadd() začne se objevovat "jo --- abcd $". Původně jsem myslel, že se překrývají paměťová místa proměných, proto jsem použil malloc. Nepomohlo.
Chtěl bych tedy touto formou požádat o radu.
#include <iostream>
#include <stdio.h>
#include "curl/include/curl/curl.h"
using namespace std;
//char MapaZnaku[]="aábcčdďeéěfghchiíjklmnňoópqrřsštťuúůvwxyýzžAÁBCČDĎEÉĚFGHCHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ0123456789~!@#$%^&*()_+`=-[]\;',./{}|:>?< ";
char MapaZnaku[]="abcd";
int MaxPocetMist=4;
char* MainServer="http://localhost/md5/";
int MaxPocetVysledku=10000000;
int main(void){
int i;
int p;
int PocetZnaku=sizeof(MapaZnaku)-1;
char TestovaciRetezec[MaxPocetMist];
for(i=0;i<MaxPocetMist;TestovaciRetezec[i++]=NULL);
signed int HodnotaPozice[MaxPocetMist];
for(i=0;i<MaxPocetMist;HodnotaPozice[i++]=-1);
int AktualniPocetMist=1;
int AktualniMisto=0;
char Stop;
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
char* Dotaz;
char* Value;
Dotaz = (char*)malloc(25);
Value = (char*)malloc(25);
Dotaz="dotaz"; //jméno post políčka
Value="ok"; //jeho hodnota
i=0;
CURL *curl;
CURLcode res;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost/md5/PridelRozsah.php");
int kolikaty=0;
while(kolikaty < MaxPocetVysledku){
HodnotaPozice[AktualniMisto]++;
if(HodnotaPozice[AktualniMisto] == PocetZnaku){
HodnotaPozice[AktualniMisto]=0;
AktualniMisto++;
continue;
};
if(AktualniPocetMist < AktualniMisto+1){
AktualniPocetMist++;
}
if (AktualniPocetMist > MaxPocetMist){
break;
};
AktualniMisto=0;
for(p=0;p<AktualniPocetMist;TestovaciRetezec[p]=MapaZnaku[HodnotaPozice[p++]]);
curl_formadd(&formpost,
&lastptr,
CURLFORM_PTRNAME, Dotaz,
CURLFORM_PTRCONTENTS, Value,
CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
curl_easy_perform(curl);
cout << TestovaciRetezec << endl;
kolikaty++;
};
cout << "konec";
curl_formfree(formpost);
curl_easy_cleanup(curl);
cin >> kolikaty;
return 1;
};
Problém se začne objevovat, až když program dojde ke 4 místným kombinacím. Ale když smažu řádek s fcí curl_formadd(). problém zmizí a vypisuje se vše už bez znaku "$", ovšem zase program nepostuje nic HTTP serveru. Přikládám obrázek
Obrázek programu: