<div dir="ltr">Hola Fernando,<br><div class="gmail_extra"><br>2013/2/18 Fernando Acua <span dir="ltr"><<a href="mailto:facua@hotmail.com" target="_blank">facua@hotmail.com</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br><br>
</blockquote><div><br></div><div style>[CORTE]</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Finalmente gracias a sus consejos el programa quedó así, aunq falta incluir la comprobación de memoria cuando se usa malloc:<br>
<div class="im"><br></div></blockquote><div><br></div><div style>Me he dado cuenta que hay un error en tu código.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><span style="color:rgb(34,34,34)">    // reservar 3 bytes p cada elemento</span><br></div>
<div class="im">    for(f=0; f<FIL; f++) for(c=0; c<COL; c++) pcMatriz[f][c]=(char*)malloc(3*sizeof(char));<br>
<br>
</div>    // copiar "abc" a cada elem<br>
<div class="im">    for(f=0; f<FIL; f++) for(c=0; c<COL; c++) strcpy(pcMatriz[f][c],"abc");<br>
<br></div></blockquote><div><br></div><div style>Aquí estás copiando 4 caracteres (de "abc") a un array que contiene 3 elementos. Recuerda que las cadenas de caracteres se auto-terminan agregando el carácter nulo al final de la información. Por lo tanto, debes crear arrays dinámicos de 4 caracteres, para poder guardar el carácter nulo. Esto es,</div>
<div style><br></div><div style>/* 4 char = 3 caracteres + carácter nulo */</div><div style><span style="font-size:12.727272033691406px;color:rgb(80,0,80);font-family:arial,sans-serif">for(f=0; f<FIL; f++) for(c=0; c<COL; c++) pcMatriz[f][c]=(char*)malloc( 4 )</span><span style="font-size:12.727272033691406px;color:rgb(80,0,80);font-family:arial,sans-serif">;</span><br>
</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">
</div>    // impresion de matriz<br>
    for(f=0; f<FIL; f++)<br>
    {<br>
        for(c=0; c<COL; c++) printf("%i.%i=%s  ",f,c,pcMatriz[f][c]);<br>
        printf("\n");<br>
    }<br>
<br>
    // liberacion de recursos:<br>
    for(f=0; f<FIL; f++) for(c=0; c<COL; c++) free( *(*(pcMatriz+f)+c) );<br>
    for(f=0; f<FIL; f++) free( *(pcMatriz+f) );<br></blockquote><div><br></div><div style>No es necesario usar la forma aritmética para tratar los punteros. Creo que es más legible usar el operador []. Esto es,</div><div style>
<br></div><div style><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">for(f=0; f<FIL; f++) for(c=0; c<COL; c++) free( pcMatriz[f][c] );</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">
<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">for(f=0; f<FIL; f++) free( pcMatriz[f] );</span><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

    free(pcMatriz);<br>
<br>
    return(0);<br>
}<br></blockquote><div><br></div><div><br></div><div style>Espero que esto te ayude.</div><div><br></div><div style>Steven</div><div style><br></div></div></div></div>