Mam taki kod:
game.h:
#ifndef GAME_H
#define GAME_H
class Game
{
public:
Game(int arg_y, int arg_x, int arg_how_much);
int y, x, how_much;
int (*ptr)[3];
void drawBoard();
};
#endif
game.cpp:
#include "game.h"
#include <iostream>
using namespace std;
Game::Game(int arg_y, int arg_x, int arg_how_much)
{
int tab[3][3];
for(int j = 0; j < y;j++) //zerowanie
{
for(int i = 0; i < x;i++)
{
tab[i][j] = 0;
}
}
tab[0][0] = 1; //ustawienie testowych wartosci
tab[1][1] = 2;
tab[2][2] = 3;
ptr = tab;
for(int j = 0; j < y;j++) //print calej tabeli
{
for(int i = 0; i < x;i++)
{
cout<<"{"<<ptr[i][j]<<"}";
}
cout<<endl;
}
}
void Game::drawBoard()
{
cout<<endl;
for(int j = 0; j < y;j++) //print tabeli
{
for(int i = 0; i < x;i++)
{
cout<<"{"<<ptr[i][j]<<"}";
}
cout<<endl;
}
}
main.cpp:
#include "game.h"
int main()
{
Game *game = new Game(3, 3, 3);
game->drawBoard();
return 0;
}
i jako output otrzymuje:
{1}{0}{0}
{0}{2}{0}
{0}{0}{3}
{1}{2293528}{4210790}
{4210790}{4199782}{0}
{0}{1875677920}{3}
I teraz moje pytanie: dlaczego gdy odwołuje sie do tablicy przez wskaźnik w pierwszym przypadku(w konstruktorze) wszystko jest ok, tabelka wyglada tak jak powinna, a gdy w funkcji do tego stworzonej(gdzie kod jest identyczny), na ekranie mam jakies random wartości?