![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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;
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;
Código:
tipo funcion(tipo &Variable); Saludos. ![]() Última edición por escafandra fecha: 06-03-2008 a las 22:51:35. |
|
#2
|
|||
|
|||
|
Muchas gracias por la respuesta.
Sucede que en C++ nunca había programado, y recuerdo que en C así es como se hacía... si declarabas un puntero, a la hora de pasarlo a una función, lo pasabas por referencia automáticamente. Creo que tendré qué leer más sobre C++. Gracias nuevamente. Saludos! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|