[C con Clase] Duda con Matriz

Davidson, Steven srd4121 en njit.edu
Mie Feb 20 04:14:47 CET 2013


Hola Fernando,

2013/2/19 Fernando Acua <facua en hotmail.com>

> Con respecto a los bytes que reservo para cada cadena:
>
>
[CORTE]

SD> >     for(f=0; f<FIL; f++) for(c=0; c<COL; c++)
> Porqué he usado hasta hasta menos d 3 bytes y no me marca ningún error,
> hasta
> he usado solo el (sizeof(char)) e incluso le copio más caracteres y no da
> problemas
>

Eso es cuestión de suerte. Depende de la memoria que haya después de los 3
bytes que pediste adjudicar. Si no hay memoria reservada después de esos 3
bytes, entonces no habrá problemas en esos momentos durante la ejecución
del programa. Si ya existe memoria reservada, y tu programa invade esa
memoria, es posible que no ocurra nada malo. Sin embargo, lo más seguro es
que el sistema operativo detenga tu programa por intentar leer datos desde
esa memoria o escribirlos a ella. En cualquier caso, esto NO es nada
aconsejable.

[CORTE]

SD> No es necesario usar la forma aritmética para tratar los punteros. Creo
> que
> SD> es más legible usar el operador []. Esto es,
> Esta notación vectorial se me hace mas compresible:
>

Muy bien. Es una razón válida.

SD> for(f=0; f<FIL; f++) for(c=0; c<COL; c++) free( pcMatriz[f][c] );
> SD> for(f=0; f<FIL; f++) free( pcMatriz[f] );
> SD>     free(pcMatriz);
> SD> >
> SD> >     return(0);
> SD> > }
> SD> >
> Finalmente estoy compilando con Code::Blocks sobre Ubuntu 11.04, esto
> tendrá que ver con los dichosos bytes que reservo con malloc y no manda
> errores ?
>

Como no tenemos un mayor control sobre el subsistema de memoria, es difícil
saber exactamente cómo funcionará este subsistema bajo el Sistema
Operativo. También ten presente que 'malloc()' es una función, así que hay
que considerar la implementación de 'malloc()' en las bibliotecas
estándares que use tu enlazador.


Hasta pronto,

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130219/9a4830a6/attachment.html>


Más información sobre la lista de distribución Cconclase