Problem z ustawieniem wartości dla tablicy string
Ostatnio zmodyfikowano 2014-01-11 14:36
bbcodepl Temat założony przez niniejszego użytkownika |
Problem z ustawieniem wartości dla tablicy string » 2014-01-11 14:11:01 Witam, mam jeden problem, który mi uniemożliwia dalsze tworzenie mojego projektu. Otóż tworze okno "chat". Przy tworzeniu kolejnej wiadomości, inne poprzednie "przesuwają się" do góry, lecz program się crash'uje. Kod: const int max_messages = 10;
bool message_alive[ max_messages ]; string message_text[ max_messages ]; int message_r[ max_messages ]; int message_g[ max_messages ]; int message_b[ max_messages ];
void create_message( string text, int r, int g, int b ) { for( int i = 0; i < max_messages - 1; i++ ) { message_alive[ max_messages - i ] = message_alive[( max_messages - i ) - 1 ]; message_text[ max_messages - i ] = message_text[( max_messages - i ) - 1 ]; message_r[ max_messages - i ] = message_r[( max_messages - i ) - 1 ]; message_g[ max_messages - i ] = message_g[( max_messages - i ) - 1 ]; message_b[ max_messages - i ] = message_b[( max_messages - i ) - 1 ]; } message_alive[ 0 ] = true; message_text[ 0 ] = text; message_r[ 0 ] = r; message_g[ 0 ] = g; message_b[ 0 ] = b; }
Sprawdzałem po kolei wszystkie tablice i ten problem występuje tylko przy "message_text". Prosiłbym o pomoc :) |
|
pekfos |
» 2014-01-11 14:20:09 Wychodzisz poza zakres tablicy (i = 0). |
|
bbcodepl Temat założony przez niniejszego użytkownika |
» 2014-01-11 14:24:34 Nie, ponieważ wyznaczyłem dla i zakres od 0 do (max_messages - 1), czyli nie może przekroczyć tej granicy. Po za tym jak zmienię jej granice do (i < 1) - także się crashuje. |
|
pekfos |
» 2014-01-11 14:27:21 Wychodzisz poza zakres tablicy. string message_text[ max_messages ];
message_text[ max_messages ] = message_text[ max_messages - 1 ]; |
|
bbcodepl Temat założony przez niniejszego użytkownika |
» 2014-01-11 14:36:39 Hm, to dlaczego tylko przez tą tablice "string" cały program mi się crash'uje, kiedy inne tablice - typu bool, double - mają taką samą czynność do wykonania, a program nie szwankuje? EDIT* Dobra dzięki pefkos ;) Może cię trochę czasem nie zrozume ale zrozumiałem oco chodzi i odjąłem wszystkie wartości o 1 i działa message_alive[ max_messages - i - 1 ] = message_alive[( max_messages - i ) - 2 ]; message_text[ max_messages - i - 1 ] = message_text[( max_messages - i ) - 2 ]; message_r[ max_messages - i - 1 ] = message_r[( max_messages - i ) - 2 ]; message_g[ max_messages - i - 1 ] = message_g[( max_messages - i ) - 2 ]; message_b[ max_messages - i - 1 ] = message_b[( max_messages - i ) - 2 ];
|
|
« 1 » |