tablica wskaznikow
Ostatnio zmodyfikowano 2016-03-21 22:10
zolty13 Temat założony przez niniejszego użytkownika |
tablica wskaznikow » 2016-03-21 21:20:57 Mam takie pytanko czemu to nie kompiluje gdzie jest blad w toku mojego rozumowania #include <stdio.h> #include <iostream> using namespace std; int main( int argc, char * argv[] ) { char * x[ 2 ]; cin >> * x[ 0 ]; cin >> * x[ 1 ]; } * tak wiem temat nieadwno był ale niechacy chyba go zaknalem i wyladowal w koszu ;) |
|
Monika90 |
» 2016-03-21 21:43:45 Elementy twojej tablicy nie zostały zainicjalizowane. To są to wskaźniki które wskazują w jakieś przypadkowe miejsca w pamięci. Więc jeżeli próbujesz wczytać coś do tych przypadkowych miejsc to pogram się wywala. |
|
zolty13 Temat założony przez niniejszego użytkownika |
» 2016-03-21 22:05:51 Mam teraz taki kod. Oczywiście mogę wprowadzić literki po 1 do każdego pola czyli lacznie 2 :) char * x[ 2 ]; for( int i = 0; i < 2; i++ ) { x[ i ] = new char; cout << 1; } cin >> * x[ 0 ]; cin >> * x[ 1 ];
Czemu jednak tutaj nie mogę wprowadzić całego wyrazu char * x[ 2 ]; for( int i = 0; i < 2; i++ ) { x[ i ] = new char[ 20 ]; cout << 1; } cin >> * x[ 0 ]; cin >> * x[ 1 ];
|
|
michal11 |
» 2016-03-21 22:08:10 Ponieważ ciągle chcesz wczytywać po jednym znaku, usuń gwiazdkę i powinno działać. |
|
zolty13 Temat założony przez niniejszego użytkownika |
» 2016-03-21 22:10:25 teraz chce wcztac cale wyrazy :/ //tak wiem te kody to jakas porazka ale po prostu eksperymentuje EDIT jak usunalem * faktycznie działa (cin >> x[ 0 ];)do postu wyzej probowalem tak char( * x[ 2 ] )[ 20 ]; for( int i = 0; i < 2; i++ ) { x[ i ] = new char *[ 20 ]; }
i tak: char *( * x[ 2 ] )[ 20 ]; for( int i = 0; i < 2; i++ ) { x[ i ] = new char *[ 20 ]; }
char *( * x[ 2 ] ); for( int i = 0; i < 2; i++ ) { x[ i ] = new char *; cout << 1; } |
|
« 1 » |