Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: erickgracia en 16 Febrero 2015, 02:59 am



Título: Pequeña duda con warning en matriz[][]
Publicado por: erickgracia en 16 Febrero 2015, 02:59 am
hola a todos :)

En esta ocasión no tengo ningun error (por lo menos de compilación :D , aunque esperaría que checaran si se puede escribr mejor la matriz) , pero tengo un warning que me marcan el IDE al declarar esta matriz

Código:
	const char ejemplo[10][10]={
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
{'X','X','X','X','X','X','X','X','X','X'},
};

Estos son los warnings en cuestion, ¿tienen alguna idea de por que los marcan y como evitarlos?, no me molestan al momento de ejecutar, pero si me perturba el ver los warnings marcados en el codigo jejeje.

Citar
Multiple markers at this line
   - non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by
    default]
   - extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]

De antemano gracias por su tiempo, si me pudieran decir una manera más óptima de declarar este tipo de matriz sería una gran ayuda (y puede que hasta sea el motivo por el que me marca el warning xD).  ;D


Título: Re: Pequeña duda con warning en matriz[][]
Publicado por: vangodp en 16 Febrero 2015, 08:47 am
Si tienes una matriz de chars de 10 lineas por 10 columnas no deberías ocupar la ultima columna ya que en ella deberia ir el caracter '\0' que indica el fin de la cadena. Si ocupas las 10 columnas el compilador va intentar poner el '\0' en la 11ª  :o  ¡Y PUEDE QUE LO CONSIGA! eso es lo peor que veo. Los demás son avisos... Aun que no sabría decirte el por que.

Sobre la matriz mejor declaras de 10 por 11 así te queda el ultimo asegurado.

char matriz [10][10+1] =D

suerte