błąd w debugerze przy tablicy dynamicznej

0

Witam,
mam problem z moją grą którą piszę, nie wiem czemu debbuger pokazuje mi, że źle usuwam pamięć, widzi ktoś może gdzie mam błąd?

 

char **tablica(int rozmiar){
    char **T;
    T=new char*[rozmiar];
    for(int i=1; i<=rozmiar; i++)
        T[i]=new char[rozmiar];

    for(int i=1; i<=rozmiar; i++)
        for(int j=1; j<=rozmiar; j++)
            T[i][j]=' ';
    return T;
}

void usunTablice(char **T, int rozmiar){
    for(int i=1; i<=rozmiar; i++)
        delete[] T[i];
    delete [] T;
}

Z góry dzięki za pomoc :)

2
T=new char*[rozmiar];

Poprawne indeksy dla T są od 0 do rozmiar-1.

1

Poza tym używanie nagich new / deleted to antyidiom w nowoczesnym C++. Użyj kontenerów z stl albo guglaj smart pointers.

0
pingwindyktator napisał(a):

Poza tym używanie nagich new / deleted to antyidiom w nowoczesnym C++. Użyj kontenerów z stl albo guglaj smart pointers.

Niestety mam za zadanie zrobić ten program bez używania c++11 :/

0
twonek napisał(a):
T=new char*[rozmiar];

Poprawne indeksy dla T są od 0 do rozmiar-1.

A można zmienić ten kod tak, żeby zostało od 1?

1

Zadeklarowac tablice większa o jeden i nie używać pierwszego (o indeksie 0) elementu. Ale to bez sensu kompletnie. Poza tym taki vector był dostępny długo przed C++11.

1 użytkowników online, w tym zalogowanych: 0, gości: 1