[C con Clase] Duda con el uso Memoria Dinamica
Lucas Tisera
lucastisera en yahoo.com.ar
Lun Feb 12 22:02:45 CET 2007
Hola a todos les escribo en esta oportunidad para consultarles:
Tengo el siguiente codigo
en el archivo "main.cpp"
#include <cstdlib>
#include <iostream>
#include "Maps.h"
using namespace std;
int main(int argc, char *argv[])
{
cout << "\nCrando Mapa..."; //creando el mapa
clMap MapaA(30,30);
cout << "\nReservando Memoria...";
MapaA.SetDimenciones(19,38);
cout << "\nMapa Creado con Exito.";
cin.get();
return EXIT_SUCCESS;
}
Y en el archivo "maps.h"
class clMap
{
private:
int clDimX;
int clDimY;
int **clDimMap;
public:
clMap(int ctDimX, int ctDimY);
~clMap();
void SetDimenciones (int ctDimX, int ctDimY);
int SetCharPos (int ctPosX, int ctPosY);
};
clMap::clMap(int ctDimX, int ctDimY)
{
clDimX = ctDimX;
clDimY = ctDimY;
}
void clMap::SetDimenciones(int ctDimX, int ctDimY)
{
delete clDimMap;
clDimX = ctDimX;
clDimY = ctDimY;
clDimMap = new int*[ctDimX];
for (int i=0; i < ctDimX; i++)
{
clDimMap[i] = new int[ctDimY];
}
for (int i = 0; i < ctDimX; i++)
{
for (int j = 0; j < ctDimY; i++)
{
clDimMap[i][j] = 0;
}
}
}
clMap::~clMap()
{
for (int i; i < clDimX; i++)
{
delete[] clDimMap[i];
}
delete[] clDimMap;
}
int SetCharPos (int ctPosX, int ctPosY)
{
}
cuando Compilo esta todo barbaro, a la hora de que ejecuta la Funcion
"SetDimenciones" reserva la memoria con exito, pero cuando quiero
escribirla, me tira un error
La instruccion en "0x00401469" hace referencia a la memoria en
"0x0000000". la memoria no se puede "written".
debo suponer que es por que quiero acceder a un lugar que "no reserve".
Alguna sugerencia?? ven algun error en el codigo (sobre todo en la calse)??
Saludos Lucas
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
Más información sobre la lista de distribución Cconclase