Dynamiczna tablica dwuwymiarowa typów *char
Ostatnio zmodyfikowano 2012-11-25 19:43
nowax Temat założony przez niniejszego użytkownika |
Dynamiczna tablica dwuwymiarowa typów *char » 2012-11-25 17:00:50 Witam! Staram się zadeklarować tablicę dynamiczną dwuwymiarową. Ma mieć ona mniej więcej taką postać: cBuffer[ 0 ] = "adfdssdk"; cBuffer[ 1 ] = "00110011110110"; ... cBuffer[ iNum ] = "tra la la"; Chcę do niej skopiować iNum ilość zmiennych typu string. Zamierzam to zrobić w ten sposób: copy( strBuffer[ j ].begin(), strBuffer[ j ].end(), cBuffer[ j ] ); A teraz na temat deklaracji: napisany kod zamieszczam poniżej. Czy jest on poprawny? Bo coś nie do końca mi się zgadza poprawność deklaracji tej zmiennej (no i wyskakują mi błędy w dalszej części programu po przekonwertowaniu zmiennych strBuffer do cBuffer). Nie powinno być tak, że jeden jej wymiar jest typu int, a drugi typu *char? Jeśli ktoś potrafi to bardzo proszę o wytłumaczenie. ... string strFinal_coord; strFinal_coord.reserve( 6 * sizeof( int ) ); ...
string * strBuffer = new string[ iPoint_num ];
char ** cBuffer = new char *[ iPoint_num ]; for( int i = 0; i < iPoint_num; i++ ) { cBuffer[ i ] = new char[ sizeof( strFinal_coord.size() + 1 ) ]; } ...
for( int j = 0; j < iPoint_num; j++ ) { cout << strBuffer[ j ] << endl; copy( strBuffer[ j ].begin(), strBuffer[ j ].end(), cBuffer[ j ] ); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! } ...
for( int i = 0; i < iPoint_num; i++ ) delete[] cBuffer[ i ];
delete[] cBuffer;
delete[] strBuffer; ...
|
|
Admixior |
» 2012-11-25 19:43:24 strFinal_coord.reserve( 6 * sizeof( int ) );
cBuffer[ i ] = new char[ sizeof( strFinal_coord.size() + 1 ) ];
cout << strBuffer[ j ] << endl; copy( strBuffer[ j ].begin(), strBuffer[ j ].end(), cBuffer[ j ] );
|
|
« 1 » |