Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 06-03-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Bien... El problema es que ids no recibe el valor creado en método(int *id). Has pasado el parámetro por valor. Para que cambie el valor de ids, tienes tres maneras:

1) Pasar el parámetro por referencia void metodo(int* &id);
2) Que metodo devuelva un valor int* metodo();
3) Pasar un puntero a un puntero void metodo(int** pid);


1) Por referencia:
Código:
void metodo(int* &id)
{
  //Como tu funcion....
}

//Uso
int *ids;
metodo(ids);
// Ahora ids apunta a un array de enteros;

2) Devolviendo el valor
Código:
int* metodo()
{
   int *id = new id[N];
   .
   .
   .
   return id;
}

//Uso
int* ids = metodo();
// Ahora ids apunta a un array de enteros;
3) Por puntero
Código:
void metodo(int**pid)
{
   int *id = new id[N];
   *pid = id;
   .
   .
   .
}

//Uso
int *ids;
metodo(&ids);
// Ahora ids apunta a un array de enteros;
En general, para pasar una variable por referencia la funcion la declaras asi:

Código:
tipo funcion(tipo &Variable);
Todos estos métodos para pasar variables y que la función cambie el valor de dichas variables, los puedes aplicar a cualquier tipo de datos que tengas.

Saludos.

Última edición por escafandra fecha: 06-03-2008 a las 22:51:35.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
El operador as David OOP 17 03-01-2008 12:43:59
Operador LIKE eldiegofg SQL 2 24-08-2007 23:30:59
Operador IS Aztaroth C++ Builder 8 04-08-2004 14:44:27
Operador *= febito SQL 1 09-06-2004 21:26:43
Operador @ Tanix PHP 2 27-10-2003 10:07:14


La franja horaria es GMT +2. Ahora son las 11:05:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi