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