public override void LiberarMemoria( EscritorC escritor ) { string pedido; string varFila = Definicion.Nombre + "Fila"; //Libera cada una de las filas escritor.For( varFila + " = 0", varFila + " < " + cantFilas, varFila + "++" ); escritor.WriteLine( "salidaFree2 = free2( " + Definicion.Nombre + "[" + varFila + "] );" ); escritor.If( "salidaFree2 == escrituraFueraDelBuffer" ); escritor.PrintfEscrituraFueraDelBufferEnFilaDeMatriz( Definicion.Nombre, varFila ); escritor.WriteLine( "cantErrores++;" ); escritor.FinIf(); escritor.If( "salidaFree2 == liberarPosMemNoValida" ); escritor.PrintfCambioDeDireccionDelPunteroEnFilaDeMatriz( Definicion.Nombre, varFila ); escritor.WriteLine( "cantErrores++;" ); escritor.FinIf(); escritor.If( "salidaFree2 == dosFreeDelMismoBuffer" ); escritor.PrintfDosFreeAlMismoParamEnFilaDeMatriz( Definicion.Nombre, varFila ); escritor.WriteLine( "cantErrores++;" ); escritor.FinIf(); escritor.FinFor(); //Libera el arreglo de punteros escritor.WriteLine( "salidaFree2 = free2( " + Definicion.Nombre + " );" ); escritor.If( "salidaFree2 == escrituraFueraDelBuffer" ); escritor.PrintfEscrituraFueraDelBuffer( Definicion.Nombre ); escritor.WriteLine( "cantErrores++;" ); escritor.FinIf(); escritor.If( "salidaFree2 == liberarPosMemNoValida" ); escritor.PrintfCambioDeDireccionDelPuntero( Definicion.Nombre ); escritor.WriteLine( "cantErrores++;" ); escritor.FinIf(); escritor.If( "salidaFree2 == dosFreeDelMismoBuffer" ); escritor.PrintfDosFreeAlMismoParam( Definicion.Nombre ); escritor.WriteLine( "cantErrores++;" ); escritor.FinIf(); }