Anonymní profil Bananovnik – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Bananovnik – Programujte.comAnonymní profil Bananovnik – Programujte.com

 

Příspěvky odeslané z IP adresy 88.100.200.–

Bananovnik
C / C++ › dynamická alokace
14. 12. 2013   #185280

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

Bananovnik
C / C++ › dynamická alokace
14. 12. 2013   #185271

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;
}

Bananovnik
C / C++ › dynamická alokace
14. 12. 2013   #185236

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

Bananovnik
C / C++ › porovnání řetězců
12. 12. 2013   #185198

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;
}

Bananovnik
C / C++ › dynamická alokace, předávání…
3. 12. 2013   #184728

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;
 }

Bananovnik
C / C++ › predani retezce funkci
2. 12. 2013   #184676

jo takhle, díky ti!

Bananovnik
C / C++ › predani retezce funkci
2. 12. 2013   #184674

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 ...

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý