elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Funcion en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Funcion en C  (Leído 1,906 veces)
soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
Funcion en C
« en: 23 Enero 2012, 23:17 pm »

¡Buenas a todos!

Estoy intentado hacer una funcion y ni si quiera soy capaz de declararla...
Esta es la definicion de la variables que luego le voy a pasar a mi funcion:
Código:
        const char orden;
        int *backgr;
        int IDEntrada; //Posible redireccion de entreda a traves (pipes)
int IDSalida; //Posible redireccion de salida a traves (pipes)
char ** ArrayParser; //Array para alamacenar la salida de la orden parser_orden

y yo estoy intentado declarar la funcion asi....
Código:
char **parser_orden(const char *orden, int &IDEntrada, int &IDSalida,int *backgr) {
     return orden;
}

y no me compila....me dice que orden no esta declardo....

¿Alguna idea?

¡Un saludo!


« Última modificación: 23 Enero 2012, 23:21 pm por soyloqbuskas » En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Funcion en C
« Respuesta #1 en: 23 Enero 2012, 23:40 pm »

y todo el codigo desde como llamas, hasta la variable que resibe el retorno?
y c++ es bien estricto si decis que vas a devolver un puntero a puntero, tenes que devolver un puntero a puntero, no un puntero nada mas


En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
Re: Funcion en C
« Respuesta #2 en: 23 Enero 2012, 23:45 pm »

¡Buenas RHL!

Lo del return ya me suponia que iba a estar mal...pero bueno....el codigo de lo que hace la funcion creo que lo puedo hacer....

Solo necesito hacer la declaracion....pero bueno, aqui te dejo algo mas de codigo....
Código:
char **parser_orden(const char *orden, int &IDEntrada, int &IDSalida,int *backgr) {
     return orden;
}

void ejecutar_orden(const char *orden, int *backgr) {
//Se encarga de ejecutar una orden

int IDEntrada; //Posible redireccion de entreda a traves (pipes)
int IDSalida; //Posible redireccion de salida a traves (pipes)
char ** ArrayParser; //Array para alamacenar la salida de la orden parser_orden
int result;
int MAXPATHLEN=100;
bool ok=false;
char path[MAXPATHLEN];


ArrayParser = parser_orden(orden, &IDEntrada, &IDSalida, backgr);
//Convierte la entrada de una orden en un array charr **, elimiando los espacios
//backgr devuelve 1 si encuentra el simbolo &
.
.
.
.


Gracias, un saludo.

EI: juntando mensajes.

Bueno, he conseguido mejorar algo...
Código:
char **parser_orden(const char *orden, int *IDEntrada, int *IDSalida,int *backgr) {
     char **ord=*orden;
     return ord;
}


Ahora la declaracion es correcta, pero me da error en la asignacion porque no hago un cast.....
¿Cual es el cast que debo poner?
« Última modificación: 24 Enero 2012, 00:51 am por Eternal Idol » En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Funcion en C
« Respuesta #3 en: 24 Enero 2012, 00:29 am »

Lo que estás haciendo en dicha asignación es asignarle a un puntero de puntero de char, un char.
La variable orden es un puntero a char, por ende (*orden) es un char. Eso lo estás asignando a un puntero a puntero a char ==> La asignación no es correcta.
Vi todo el hilo muy por arriba, pero si intentas castear dicha asignación entonces

Código
  1. char** ord = (char**)orden;
  2.  
o prueba con:

Código
  1. char** ord = &orden;
En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
Re: Funcion en C
« Respuesta #4 en: 24 Enero 2012, 00:48 am »

¡Gracias Ferno!

La opcion:
Código:
char** ord = &orden;
ya la habia probado y no funciona

Pero la opcion:
Código:
char** ord = (char**)orden;
si que funciona jeje

Un saludo.
En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
manejo de argumentos en funcion dentro de funcion ???
PHP
SpiderNet 2 3,431 Último mensaje 30 Septiembre 2008, 03:01 am
por SpiderNet
Duda con funcion dentro de funcion en un echo
PHP
N4X 6 5,863 Último mensaje 21 Enero 2010, 18:12 pm
por N4X
* [Source+Funcion+vb6] AceptarConeccion (Sencilla funcion)
Programación Visual Basic
BlackZeroX 0 2,705 Último mensaje 19 Abril 2010, 00:54 am
por BlackZeroX
funcion como argumento a otra funcion
Programación C/C++
Dark Invader 5 4,849 Último mensaje 29 Junio 2011, 20:52 pm
por Dark Invader
Función que retorna el valor de retorno de otra función
Programación C/C++
naderST 7 4,741 Último mensaje 7 Diciembre 2011, 23:45 pm
por naderST
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines