Les quito un poco de tiempo porque si bien estoy leyendo que es lo que causa el doble free no logro solucionarlo por mí mismo y si lo lograra me quedarían dudas en la función concatenar, les digo esto porque si bien logre que no me diera error en la compilación lo hice a fuerza de prueba/error/solución pero no teniendo claro que es lo que estaba haciendo. -
Las cosas que no me quedan claras:
1): Porque debo hacer que la función se declare como un puntero a función.
2): Porque el error del doble free.
3): Como se hace para poner un espacio entre las dos frases (por programación, claro).-
Código
#include <stdio.h> #include<string.h> #include<stdlib.h> #define MAX 51 void ingreso( char origUno[], char origDos[] ); void limpiarBuffer( char cadena[] ); char *concatenar( char *origUno, char *origDos ); int main( void ){ char origUno[MAX] = "", origDos[MAX] = "", *ptrConc = NULL; ingreso( origUno, origDos ); ptrConc = concatenar( origUno, origDos ); return 0; } void ingreso( char origUno[], char origDos[] ){ limpiarBuffer( origUno ); limpiarBuffer( origDos ); } void limpiarBuffer( char cadena[] ){ char *p = NULL; size_t ch; *p='\0'; } else{ } } char *concatenar( char *origUno, char *origDos ){ return arr; }
Saludos y desde ya muchas gracias. -