<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Con lo que me decis creo que encontre el error pero no sabria como hacerlo. Ahora te explico esto este codigo es parte de un trabajo que tengo que realizar y el objetivo es lograr que haga lo que explique cuando subi el tema, ahora la utilizacion de los codigos ascii de esta manera es porque nos lo pasaron asi para poder imprimir los peces entonces el problema seria que las figuras estan preparadas creo yo para trabajar con enteros, lo que deberia hacer es cambiar los punteros por enteros en vez de que sean chars, esto al menos entiendo yo en la logica y creo te orienta un poco mas a vos asi me podes ayudar.<br><br><div><hr id="stopSpelling">Date: Tue, 11 Aug 2015 23:27:48 -0400<br>From: srd4121@njit.edu<br>To: cconclase@listas.conclase.net<br>Subject: Re: [C con Clase] C++ Tema Herencia<br><br><div dir="ltr">Hola Joaquín,<div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Cada "pez" es un array de arrays de 'char' que conceptualmente es una lista de cadenas de caracteres. Por lo tanto, el carácter nulo debe ir al final de cada cadena de caracteres, y no al final de la lista de cadenas. Esto es,</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra"><div class="ecxgmail_extra"><div class="ecxgmail_extra">f0 = new char*[6];</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">for( int i=0; i<6; i++ )</div><div class="ecxgmail_extra">  f0[i] = new char[3];  // 2 + el carácter nulo<br></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Y luego tenemos que asignar tal carácter nulo:<br><br>f0[0][0]=92;   f0[0][1]=47;   f0[0][2]=0;<br><div class="ecxgmail_extra">f0[1][0]=95;   f0[1][1]=45;   f0[1][2]=0;</div><div class="ecxgmail_extra">f0[2][0]=124; f0[2][1]=46;   f0[2][2]=0;</div></div><div class="ecxgmail_extra">...</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">El otro problema es que asignas caracteres nulos al comienzo en algunas cadenas; por ejemplo, escribes,</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">f0[4][0]=0;   f0[4][1]=39;<br></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Esto no tiene sentido porque marcas el final de la cadena en el primer carácter y por tanto, los posteriores caracteres no son usados, que en este caso es el código ASCII, 39. Sospecho que quieres dejar un espacio, por lo que haz eso mismo; por ejemplo,</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra"><div class="ecxgmail_extra">f0[4][0]=' ';   f0[4][1]=39;   f0[4][2]=0;</div><div><br></div><div>Además, no veo ninguna razón por usar los códigos ASCII explícitamente, ya que el código no es muy legible de esta manera. Es más fácil usar los caracteres; por ejemplo,</div><div><br></div><div><div>f0[0][0]='\\';   f0[0][1]='/';   f0[0][2]=0;</div><div>f0[1][0]='_';   f0[1][1]='-';   f0[1][2]=0;</div><div>f0[2][0]='|';    f0[2][1]='.';   f0[2][2]=0;</div><div>...</div></div></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Claro que si sabes exactamente los caracteres que quieres guardar, creo que es más sencillo usar un array regular; por ejemplo,</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">char f0[6][3] = { "\\/", "_-", "|.", ... };</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Así no tienes que andar con memoria dinámica ni asignando caracteres uno a uno.</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">En cuanto al tema de 'delete[]', debes emparejar cada uso de 'new[]' con un 'delete[]'; es decir, cada petición de memoria debe corresponder con cada liberación de memoria. Para 'f0', pides siete bloques diferentes de memoria; o sea, usas 'new[]' siete veces. A la hora de liberar la memoria debes liberar cada bloque que pediste, y por tanto, debes usar 'delete[]' siete veces. Esto es,</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Pez_Chico::~Pez_Chico()</div><div class="ecxgmail_extra">{<br></div><div class="ecxgmail_extra"><div class="ecxgmail_extra">  for( int i=0; i<6; i++ )  // Liberamos cada array en 'f0[i]'</div><div class="ecxgmail_extra">    delete[] f0[i];</div><div class="ecxgmail_extra">  delete[] f0;                // Liberamos el array de punteros, 'f0'</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">  // Lo mismo para 'f1'</div><div class="ecxgmail_extra">  ...</div><div class="ecxgmail_extra">}</div></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Si quieres listar error por error, puedo contestar cada uno directamente; y si no quieres, no pasa nada, ya listaré cada tema por separado.</div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra"><br></div><div class="ecxgmail_extra">Espero que vaya aclarando las dudas.</div><div class="ecxgmail_extra"><br></div></div></div><div class="ecxgmail_extra">Steven</div><div class="ecxgmail_extra"><br></div></div>
<br>_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ</div>                                         </div></body>
</html>