Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dynamiczne alokowanie pamięci

Ostatnio zmodyfikowano 2017-02-04 20:55
Autor Wiadomość
Maciekb
Temat założony przez niniejszego użytkownika
Dynamiczne alokowanie pamięci
» 2017-02-01 14:23:49
C/C++
#include<iostream>
using namespace std;
double maximum( double tab[], int ile )
{
    double max;
    max = tab[ 0 ];
    for( int i = 1; i < ile; i++ )
    {
        if( tab[ i ] > max )
             max = tab[ i ];
       
    }
    return max;
}


int main()
{
    int ile;
    double * wskaznik;
   
    cout << "Podaj ilosc liczb:" << endl;
    cin >> ile;
   
    wskaznik = new double tab[ ile ];
   
    cout << "Podaj 5 liczb:" << endl;
    for( int i = 0; i < 5; i++ )
         cin >> tab[ i ];
   
    cout << "MAX:" << maximum( tab, ile );
   
    delete[] wskaznik;
}

Kompilator wywala błąd:

a nowe\max.cpp||In function 'int main()':|
a nowe\max.cpp|25|error: expected ';' before 'tab'|
a nowe\max.cpp|29|error: 'tab' was not declared in this scope|
a nowe\max.cpp|30|error: 'tab' was not declared in this scope|
||=== Build finished: 3 errors, 0 warnings ===|

Chciałbym się zapytać co zrobiłem nie tak? :)
P-157196
michal11
» 2017-02-01 14:30:20
wskaznik = new double[ ile ];
P-157197
mateczek
» 2017-02-01 14:39:36
i do tego
C/C++
cin >> tab[ i ]; // nigdzie nie zadklarowane "tab". Zamiast tab powinno być wskaznik
P-157198
Eshelnah
» 2017-02-01 14:48:17
P-157199
Maciekb
Temat założony przez niniejszego użytkownika
» 2017-02-01 19:04:38
C/C++
#include<iostream>
using namespace std;
double maximum( double tab[], int ile )
{
    double max;
    max = tab[ 0 ];
    for( int i = 1; i < ile; i++ )
    {
        if( tab[ i ] > max )
             max = tab[ i ];
       
    }
    return max;
}


int main()
{
    int ile;
    double * wskaznik;
   
    cout << "Podaj ilosc liczb:" << endl;
    cin >> ile;
   
    tab = new double[ ile ];
    tab[ ile ];
    cout << "Podaj 5 liczb:" << endl;
    for( int i = 0; i < 5; i++ )
         cin >> tab[ i ];
   
    cout << "MAX:" << maximum( tab, ile );
   
    delete[] wskaznik;
}
a nowe\max.cpp||In function 'int main()':|
a nowe\max.cpp|25|error: 'tab' was not declared in this scope|
||=== Build finished: 1 errors, 0 warnings ===|

Mam jeszcze pytanie dlaczego to nie działa mimo że jest zrobione jak w przykładzie(przynajmniej według mnie)?
P-157204
michal11
» 2017-02-01 19:50:08
Gdzie deklarujesz tab w mainie?
P-157207
Maciekb
Temat założony przez niniejszego użytkownika
» 2017-02-04 15:42:38
C/C++
#include<iostream>
using namespace std;
double boubblesort( double tab[], int ile )
{
    double buf;
    for( int j = 0; j < ile--; j++ )
    {
        for( int i = 0; i < ile--; i++ )
        {
           
            if( tab[ i ] > tab[ i + 1 ] )
            {
                buf = tab[ i + 1 ];
                tab[ i + 1 ] = tab[ i ];
                tab[ i ] = buf;
            }
           
        }
       
    }
   
}
int main()
{
    int ile;
    cout << "Podaj ilosc liczb:";
    cin >> ile;
    cout << "Podaj liczby:" << endl;
    double tab[ ile ];
    for( int i = 0; i < ile; i++ )
         cin >> tab[ i ];
   
    cout << "" << endl;
    boubblesort( tab, ile );
    for( int i = 0; i < ile; i++ )
         cout << tab[ i ] << endl;
   
   
}
Czy można ustawić ilość komórek w tablicy w ten sposób jeśli ta wartość jest ustawiana na początku i nie zmienia się w trakcie działania programu?
P-157330
1aam2am1
» 2017-02-04 16:22:39
Nie, tego nie można zrobić w C++ chociaż niektóre kompilatory mogą to obsługiwać.
P-157332
« 1 » 2
  Strona 1 z 2 Następna strona