no, vidíš to, ještě ke všemu... já už se vzdávám, to prostě nedám dokupy, celý den tím zabitý a nic
Příspěvky odeslané z IP adresy 88.100.200.–
tak jsem zkusila vytvořit něco, co se tváří, že funguje, ale když se snažím ve funkci zvetsitpole o delete[]arr, tak se mi program po spuštění ukončí.. je předání toho pointeru pořád špatně ?
void zvetsitPole(int (*arr), int &a)
{
int *arr2 = new int [a + 1];
for (int i = 0; i < a; i++)
arr2[i] = arr[i];
//delete [] arr;
arr = arr2;
a++;
}
void zaplnPole(int (*arr), int &a)
{
for (int i = 0; i < 10; i++)
{
zvetsitPole(arr, a);
arr[i] = i;
}
}
int main()
{
int a = 0;
int *arr = new int [a];
zaplnPole(arr,a);
for (int i = 0; i < a; i++)
cout << "pha: "<<arr[i] << endl;
delete [] arr;
return 0;
}
Zdravím, mohl by mi prosím někdo poradit ohledně tohoto kódu:
void zvetsitPole(int **arr, int &a)
{
int *arr2 = new int [a + 1];
for (int i = 0; i < a; i++)
arr2[i] = *arr[i];
delete [] arr;
*arr = arr2;
a++;
}
void zaplnPole(int *arr, int &a)
{
for (int i = 0; i < 10; i++)
{
zvetsitPole(&arr, a);
arr[i] = 5;
}
}
int main()
{
int a = 5;
int *arr = new int [a];
zaplnPole(arr,a);
for (int i = 0; i < a; i++)
cout << "pha: "<<arr[i] << endl;
return 0;
}
problém mám asi s předáním pole ve funkci zaplnpole do zvetsit pole... poraďte prosím jak to zprovoznit
Zdravím :)
Chápu správně, že takovéhle porovnávání funguje na principu porovnání hodnoty znaku v ascii tabulce ? a porovnává ty řetězce podle prvních znaků, a ty když se rovnají tak přechází na druhý atd? ... a nebo to je něco úplně jiného? nějak v tom totiž asi nevidím jiný smysl
int main()
{
string s = "abcw";
string r = "bcd";
if (s > r) cout << "a" << endl;
else if (s == r) cout << "b" << endl;
else cout << "c" << endl;
return 0;
}
Zdravím, mám tu před sebou celkem hnusný úkol a nevím si rady ... chci, aby mi funkce zjisteniRoku zaplnila intové pole jednotlivými roky, přičemž uživatel může zadat jeden rok i interval roků... a když nevím jak velké pole budu mít, musím ho dynamicky alokovat, ne? na to mám vytvořenou další funkci, která mi to pole zvětšuje ... ale někde v té hrůze je nějaká strašlivá chyba, na kterou nemůžu přijít a dohání mě k šílenství ... prosím někoho o radu, co tam dělám špatně
void zvetsitPole(int arr[], int &a)
{
int *arr2 = new int [a + 1];
for (int i = 0; i < a; i++)
arr2[i] = arr[i];
delete [] arr;
arr = arr2;
a++;
}
void zvetsitPole(string arr[], int &a)
{
string *arr2 = new string [a + 1];
for (int i = 0; i < a; i++)
arr2[i] = arr[i];
delete [] arr;
arr = arr2;
a++;
}
char zjisteniRoku(const char * years, int roky[], int &delka)
{
string s;
s = years;
for (unsigned int i = 0; i < s.length(); i++)
if (s[i]==' ') s.erase(i,1);
cout << s << endl;
int delkaArr = 0;
string *arr = new string [delkaArr];
char *p = &s[0];
char *token = strtok(p, ",");
int i = 0;
while (token != NULL)
{
zvetsitPole(arr,delkaArr);
arr[i] = token;
token = strtok(NULL, ",");
i++;
}
for (unsigned int i = 0; i < delka; i++)
{
if (arr[i].length() == 4)
{
cout << delka << endl;
zvetsitPole(roky, delka);
cout << delka << endl;
int rok = atoi(arr[i].c_str());
roky[i] = rok;
cout << roky[i]<<endl;
}
else if (arr[i].length()==8)
{
string s1 = arr[i].substr(0,4);
string s2 = arr[i].substr(4,4);
int is1 = atoi(s1.c_str());
int is2 = atoi(s2.c_str());
while (is1<=is2)
{
roky[i] = is1;
i++;
is1++;
}
}
}
return 0;
}
int vytvorPoleIntu( const char * years )
{
int delka = 0;
int *roky = new int [delka];
zjisteniRoku(years,roky,delka);
for (int i=0; i < delka; i++) cout << roky[i] << endl;
return 0;
}
jo takhle, díky ti!
Zdravím,
nejspíš triviální problém ale já tomu prostě nemůžu přijít na kloub ...
řekněme že mám nějakou funkci
-int funkce (const char * a){....}
a řetězec který mi v mainu zadá uživatel
-string s; cin >> s;
a teď v mainu chci zavolat tuhle funkci a nacpat do ní ten řetězec ... co mám napsat do závorek
-funkce(????);
tak aby mi to ta funkce sežrala? Už se tu z těch ukazatelů asi zblázním ...