devolver una cadena de caracteres de un array de cadenas

jesus
26 de Abril del 2010
hola a todos tengo un problemilla:
he creado una clase con un array de cadenas de 20 cars cada una. intento hacer un metodo que me devuelva solo una pero me da un error parece ser porque el array es 'array[5][20]' y lo que quiero devolver al ser solo una cadena es simplemente 'cadena'.
bueno no se si explico, aqui os dejo el objeto en cuestion. gracias!!

class Pila{

private:
char pila[N][20];// array de 5 cadenas de 20 cars
public:
Pila(){
for(int i=0; i<N; i++){
strcpy(pila[i], "0");
}
}
char *sacarcadena(){ // metodo que falla
char aux[20];
int i;
for(i=0; strcmp(pila[i], "0")!=0 && i<N; i++){
}
if(i==0)
return("pila vacia");
else{
strcpy(aux,pila[i-1]);
strcpy(pila[i-1], "0");
return(aux); // aqui esta el error en cuestion
}
}
int metercadena(char *cadena){
int i;
for(i=0; strcmp(pila[i], "0")!=0 && i<N; i++){
}
if(i==N)
return(0);// pila llena
else{
strcpy(pila[i-1],cadena);
return(1);// metido con exito
}
}
};

al compilar me da el tipici error:

function `char* Pila::sacarcadena()':
address of local variable `aux' returned
types in assignment of `char*' to `char[20]'

si alguien me puede ayudar se lo agradezco!!!