C/Visual C - Ayuda con unas funciones

 
Vista:

Ayuda con unas funciones

Publicado por Nasón (40 intervenciones) el 26/02/2004 00:23:33
Hola de nuevo:
Resulta que tengo que trabajar bastante con matrices y harto de repetir las sentencias de asignación dinámica de memoria he decidido implementar dos funciones: una me permite asignar la memoria necesaria pasándole como argumentos el número de filas y columnas del array y es:

double **asigna_memoria(int fil, int col)
{
int i;
double **a;
//asignación de memoria para el array de punteros
a = (double **)malloc(fil * sizeof(double *));
if (a == NULL)
{
printf ("Insuficiente espacio en memoria");
system("PAUSE");
exit (-1);
}
//asignación de memoria para cada una de las filas
for (i = 0; i < fil; i++)
{
*(a + i) = (double *)malloc (col * sizeof(double));
if (*(a + i) == NULL)
{
printf ("Insuficiente espacio en memoria");
system("PAUSE");
exit (-1);
}
}
return (a);
}

esta, al menos, funciona, aunque la duda que tengo es la siguiente:
¿Es necesario realizar la conversión explícita al tipo de dato devuelto por malloc?. En el libro que tengo (Curso de programación C/C++, de Fco. Javier Ceballos Sierra) pone que el compilador la hace internamente aunque en los ejemplos del mismo libro se hace. Total:
¿escribo a = (double **)malloc(fil * sizeof(double *)); , o me vale simplemente con a = malloc(fil * sizeof(double *)); ?.¿Da igual?, Si hago la conversión explícita en un compilador que ya la hace %E
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con unas funciones

Publicado por chuidiang (677 intervenciones) el 26/02/2004 09:25:31
El cast no es estrictamente necesario. El codigo funcionara igual de bien si lo pones como si no.
El posible problema es que el compilador de un warning indicando que ha tenido que hacer el cast. Como los warnings es algo feo de tener, suele ponerse dicho cast.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar