C/Visual C - stack overflow

 
Vista:

stack overflow

Publicado por Oscar (21 intervenciones) el 31/03/2006 15:23:59
Defino un array bidimensional de la siguiente forma
int Matriz[900][900];
al parecer al reservar un tamaño tan grande me da un error de desvordamiento de pila.
Me pregunto si esto se puede corregir para poder definir la matriz de esta forma
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:stack overflow

Publicado por fernando.gomez (1604 intervenciones) el 31/03/2006 18:57:36
El desbordamiento (nota que es con b de borde :-) de la pila es más común cuando mandas llamar un método recursivo sin que éste regrese nunca. Como cada vez que mandas llamar a un método se ubica memoria para el mismo, pues se te acaba la memoria.

Tu matriz no es muy grande, alrededor de 1.5 MB, por lo que dudo que el tamaño de ésta sea la causante. Más bien yo me iría por la primera opción.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:stack overflow

Publicado por ramon (1 intervención) el 02/04/2006 08:57:56
si tu matriz es local si es posible al error stackoverflow ya que las variables de tipo local (auto) reservan memoria en el stack, si es asi tienes dos posibles soluciones
definir la matriz con tipo global o estatica
crear la matriz con el operador new para que reserve memoria del heap y no del stack
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:stack overflow

Publicado por Oscar (21 intervenciones) el 03/04/2006 07:59:10
Gracias. Definiendo la matriz como estática ya no da el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar