Funci贸n que retorna cadenad e caracteres, pthreads

rootag
16 de Septiembre del 2005
Para que una funci贸n devuelva una cadena de caracteres la cosa parece simple:

unsigned char *function();

No obstante adem谩s de que el compilador devuelve un error de devolucion de variable local, este m茅todo se vuelve inseguro cuando se utilizan pthreads.

Posible debe ser porque existen funciones como ctime que devulven una cadena de caracteres.

驴Alg煤n libro para pulir estas deficiencias de conocimiento?

-El de kernighan C89 ya lo tengo.

chuidiang
16 de Septiembre del 2005
Hola:

Efectivamente es mala idea devolver un puntero a una variable local. La variable desaparece al salir de la funci贸n y el puntero queda apuntando a nada. La forma de devolver un char * es haciendo un new (o malloc) dentro de la funcion

char *funcion()
{
char *resultado = new char [10];
...
return resultado;
}

No entiendo por qu茅 dices que es inseguro con pthreads. Una funci贸n es insegura seg煤n el c贸digo que hay dentro, no seg煤n lo que devuelve.

Se bueno.