Les pido mil disculpas porque no es la primera vez que consulto y no logro explicarme correctamente. -
Una última cosita de mi parte, me gustaría que alguien haga alguna critica sobre mi código para aprender algo más.
Cita de: animanegra en Junio 24, 2016, 01:29:34 pmcuando se pone como entrada un array con componente estatica a una funcion haces llorar al niño jesus y matas a un gatito todo a la vez. Supongo que dependera de gustos, pero a mi me rechina monton.Esta parte me interesa dado que nunca había leído que era tan costoso pasar un vector/array a una función. -Les pido mil disculpas porque no es la primera vez que consulto y no logro explicarme correctamente. -
cuando se pone como entrada un array con componente estatica a una funcion haces llorar al niño jesus y matas a un gatito todo a la vez. Supongo que dependera de gustos, pero a mi me rechina monton.
Mira YoSoyRDV, primero se usa alloc o calloc luego si tienes que aumentar la memoria usas realloc.
Cuando termine C voy a continuar con C++ y luego aprenderé un lenguaje de más alto nivel o sea un lenguaje más comercial.
En cuanto a dedicarme a esto profesionalmente no me interesa por el momento porque con mis ingresos actuales la paso de maravillas. -Te voy a contar cuál es mi gran sueño, lo dije una sola vez en un foro y créeme que me llovieron las criticas, fueron demasiadas, pero igual sigo con eso y no voy a parar hasta lograrlo, es hacer un motor de bases de datos, tablas, no sé exactamente como se le llame pero se entiende.
No tengo esto muy fresco pero me parece recordar que se puede usar realloc directamente, pasándole NULL como puntero previo.
cuando se pone como entrada un array con componente estatica a una funcion haces llorar al niño jesus y matas a un gatito todo a la vez. Supongo que dependera de gustos, pero a mi me rechina monton.Por cierto, cuidado con el realloc, que si se queda con memoria no consecutiva te mueve todo a una zona nueva de memoria haciendo una copia. Con el coste que ello tiene en CPU, tiempo, etc...
void leer_frases(char** frases) { for (int i=0;i<5;i++) { frases[i]=(char*) malloc(20); fgets (frases[i],20,stdin); }}void imprimir_frases(char** frases) { for (int i=0;i<5;i++) printf ("frase %i:%s\n",i,frases[i]); }int main(int argc, char** argv) { char **frases = (char**) malloc(5); leer_frases (frases); imprimir_frases(frases); for (;;); return 0;}
Te voy a contar cuál es mi gran sueño, [...] es hacer un motor de bases de datos