Ver Mensaje Individual
  #8 (permalink)  
Antiguo 12/11/2010, 19:49
AlanChavez
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: ¿como hacer return a una string?

pasa la cadena por referencia, de esa manera no hay necesidad de regresar ningun valor y no te lias.
Ademas, siempre que utilizas funciones y uno de tus argumentos es un array, una buena practica de programacion es pasar los arrays por referencia, y no por valor.

Cuando pasas los arrays por referencia, la funcion modifica directamente el array.
Cuando pasas los arrays por valor, la funcion crea una copia del array y cuando termina de trabajar con el array, lo regresa.

Imaginate si tienes una funcion recursiva, cuyo argumento sea un array dinamico (o un array[100] por hacerlo "grande") y cada vez que la funcion se llame a si misma, una copia del array se va a almacenar en memoria. No bastaran muchas llamadas recursivas, antes de que te mande el error " segmentation fault" en otras palabras, te vas a quedar sin memoria.

La otra ventaja cuando pasas valores por referencia, y no por valor, es que cuando manejas este tipo de estructura de datos (o alguna estructura de datos en general), el rendimiento y rapidez de una llamada por referencia es mayor que a la eficiencia de un pase por valor.

como ya comento sam90, lo unico que tienes que utilizar es un puntero en tu funcion, agregandole un *
pero cuando llamas a la funcion, tienes que incluir un & para decirle al compilador que estas pasando por referencia, y no por valor.

Por eso el compilador te esta diciendo que no se puede convertir char * a char[10]

tu funcion puede ser

void mifuncion(char *micadena)
{
//...tu codigo
}

int main()
{
char micadena[10];
mifuncion(&micadena);
return 0;
}