<div dir="ltr"><div><div>Hola Steven.<br><br></div><div>Muchas gracias!<br></div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 17 de septiembre de 2013 16:17, Davidson, Steven <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hola Diego,<div class="gmail_extra"><br><div class="gmail_quote"><div class="im">2013/9/17 Diego <span dir="ltr"><<a href="mailto:diegogeid@gmail.com" target="_blank">diegogeid@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Buenas tardes, tengo una duda simple cuya respuesta edsconozco y la planteo:<br><br></div>Puedo inicializar arrays de cadenas de caracteres de forma simple?<br>




<br></div>Es decir, en vez de inicializar una cadena de caracteres como<br><br></div>char aa[]={"Cadena de caracteres"}<br><br></div></div></div></div></div></div></div></div></blockquote><div><br></div></div><div>

Esto no es correcto. Piensa que las comillas ya incluyen las llaves. Por lo tanto, escribe:<div> </div></div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="im">
<br>char aa[] = "Cadena de caracteres";</div></div><div class="im"><div><br></div></div></div></div></div></blockquote><div><div><br></div>Es verdad lo de los corchetes, me dejé llevar por la declaración de los arrays jaja. Gracias.<br>

 <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="im"><div></div>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr"><div><div><div><div><div><div><div></div>Necesito inicializar un array de ellos, algo así como<br><br></div>char aa[][]={"Cadena 1","Cadena 2","cadena 3"}<br>

<br></div></div></div></div></div></div></blockquote><div><br></div></div><div>La inicialización es correcta, pero no la declaración de 'aa', porque debes indicar las cantidades de los elementos, aunque no tienes que hacerlo para la primera "dimensión". Esto es,</div>


<div><br></div><div>char aa[][9] = { "Cadena 1", "Cadena 2", "cadena 3" };</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div dir="ltr"><div><div><div><div><div></div>De foma tal que cuando inserte una instrucción como<br><br></div>puts(aa[0]);<br><br></div>aparezca en la pantalla la correspondiente cadena, o existe alguna forma simple de hacerlo?<br>


<br></div></div></div></blockquote><div><br></div></div><div>Lo anterior funcionará, pero si quieres un array de cadenas de diferentes cantidades de caracteres, entonces puedes usar un array de punteros a 'char'. Por ejemplo,</div>


<div><br></div><div>char cad1[] = "Cadena 1";</div><div>char cad2[] = "Cadena 2";<br></div><div>char cad3[] = "cadena 3";<br></div><div>char cad4[] = "hola";<br></div><div>char cad5[] = "mundo";<br>


</div><div><br></div><div>char * aa[] = { cad1, cad2, cad3, cad4, cad5 };</div><div><br></div></div></div></div></blockquote><div><br></div><div>Perfecto, intentaba evitarlo pero veo que no hay opción.<br></div><div> </div>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>Otra implementación es usar cadenas adjudicadas dinámicamente. Por ejemplo,</div>

<div><br></div><div>char *aa[5];</div><div>
<br></div><div>aa[0] = new char[10];</div><div>aa[1] = new char[20];<br></div><div>aa[2] = new char[5];<br></div><div>aa[3] = new char[31];<br></div><div>aa[4] = new char[28];<br></div><div>...</div><div><br></div><div>Obviamente hay que asignar caracteres a cada cadena guardada en 'aa'. Por supuesto, también hay que liberar la memoria dinámicamente con 'delete[]'.</div>

</div></div></div></blockquote><div><br>Mas que claro, me olvidé decir que el lenguaje es C y no C++, y en 
general necesito evitar las sentencias que utilicen memoria dinámica.<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra">

<div class="gmail_quote">
<div><br></div><div><br></div><div>Espero que esto te ayude.</div><span class=""><font color="#888888"><div><br></div><div>Steven</div></font></span></div></div></div></blockquote><div><br></div><div>Me ayuda, era lo que quería saber, muchas gracias por la respuesta <br>

</div><br></div><div class="gmail_quote"><font color="#888888">Saludos<br>Diego<br></font></div></div></div>