Witam, mam dwa problemy związane z tablicami.
W pierwszym przykładzie alokuje tablice dwuwymiarową wielkości 2x2. Następnie za pomocą pierwsz pętli chce ją zapisać (powiedzmy wartościami 5, jak w kodzie) a kolejną pętlą wypisać na ekranie.
int **tablica = new int *[2];
tablica[0] = new int[2];
tablica[1] = new int[2];
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
**tablica = 5;
tablica[i][j];
}
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cout << tablica[i][j];
}
}
No i problem jest taki, że nadaje wartość tylko pierwszej komórce, reszta nie działa. Czy zapis tablica[i][j] w pierwszej zagnieżdżonej jest niepoprawny?? Jeśli tak, to w jaki sposób mam się odwoływać do poszczególnych elementów wymiarów tablic?? Program kompiluje poprawnie, ale nie wiem jak przypisać wartości pozostałym komórkom.
Drugi problem jest z usuwaniem tablicy. Piszę w visual studio C++ i mam problem.
Taki kod jest poprawny:
int *tablica = new int[5];
delete[] tablica;
Natomiast gdy spróbuje wskazać na kolejny adres:
int *tablica = new int[5];
tablica++;
delete[] tablica;
To, mimo ze program kompiluje sie poprawnie, wyskakuje informacja "Element ConsoleApplication1.exe wyzwolił punkt przerwania.: wystąpił wyjątek " Tutaj dam pełny screen bo nie rozumiem o co w ogóle chodzi Może ktoś mi wyjaśnić o co z tym chodzi?