[C con Clase] Segmentation Fault a la hora de leer un archivo

Asdrúbal Iván Suárez Rivera asdrubal.ivan.suarez.rivera en gmail.com
Lun Abr 2 20:11:02 CEST 2012


El 2 de abril de 2012 13:34, Steven Davidson <srd4121 en njit.edu> escribió:

> Hola Asdrúbal,
>
>
> On 4/2/2012 1:54 PM, Asdrúbal Iván Suárez Rivera wrote:
>
>> Buenas tardes, disculpen si la pregunta es un poco newbie, resulta
>> que tengo un problema a la hora de leer un archivo, sospecho que en
>> las últimas líneas, pero no he tenido posibilidad de debuggearlo,
>> este es el código que ando usando:
>>
>>
> [CORTE]
>
>
>  vector<int> & leer()
>> {
>>     string linea;
>>     vector<int> ret_val;
>>     int temp;
>>
>
> [CORTE]
>
>      return ret_val;
>> }
>>
>
> El problema está aquí. Estás retornando 'ret_val' por referencia. Sin
> embargo, este objeto es local a esta función, por lo que se destruirá al
> finalizar el ámbito de esta función. Esto significa que estás retornando
> basura.
>
> Tienes dos opciones:
> 1. Retorna un nuevo objeto escribiendo:
>
> vector<int> leer();
>
> 2. Acepta el objeto del vector como parámetro, para asegurar que tal
> objeto existe después de la invocación de esta función. Esto es,
>
> vector<int> & leer( vector<int> &ret_val );
>
> No es necesario retornar nada, porque lo hacemos indirectamente a través
> del parámetro, pero así puedes "encadenar" invocaciones con el vector.
>
>
>
Excelente, he resuelto mi problema. He visto en muchos códigos fuente en
donde existen funciones en las que se retorna una referencia. ¿A qué se
debe esto?

Post Data: ¿Tienen un canal IRC?

Saludos cordiales :)


> Espero haber aclarado la duda.
>
> Steven
>
>
> ______________________________**_________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/**mailman/listinfo/cconclase_**
> listas.conclase.net<http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net>
> Bajas: http://listas.conclase.net/**index.php?gid=2&mnu=FAQ<http://listas.conclase.net/index.php?gid=2&mnu=FAQ>
>



-- 
Asdrúbal Iván Suárez Rivera

*El éxito de alguien que enseña no es que sepa mucho, sino que lo poco que
sabe lo sepa hacer llegar.*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120402/0af1b716/attachment.html>


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