91 007 17 22 - 09:30 a 14:00 y de 16:00 a 21:00 horas.info@asociacionaepi.es

Paso por referencia de una tupla en C/C++

Posteado en: blog Iniciado por

Paso por referencia de una tupla en C/C++

En nuestro artículo de hoy os mostraremos como pasar por referencia un tupla en c/c++

Sea la tupla t_trol:

typedef struct trol{

int x,y;

int color;

 

}t_trol;

Se puede tener una función de inicialización con un puntero de tipo t_trol* como parámetro:

void init(t_trol*p)

{

p->x=rand()%800;

p->y=rand()%600;

p->color=rand()%256;

}

Y en alguna parte, la llamada:

t_trol t;

init(&t);    // paso de la dirección de la struct t_trol

En el caso de la tabla de punteros, no hay que olvidar asignar los punteros. En efecto, si se escribe por ejemplo:

t_trol* ALL[10];

int i;

for (i=0; i<10; i++){

init(ALL[i]);    // ¡ERROR!  ALL[i] NO ASIGNADO

}

provoca un error de ejecución, ALL[i] no tiene una dirección de memoria reservada. Por lo tanto, hay que añadir previamente la asignación de memoria (sea en el mismo sitio, o en cualquier otra parte en el programa):

for (i=0; i<10; i++){

ALL[i]=(t_trol*)malloc(sizeof(t_trol));

init(ALL[i]);    // OK,  ALL[i] ASIGNADO

}

 

Espero que este artículo te sea de utilidad o que simplemente te haya gustado, si es así compártenos¡¡¡

image_pdfimage_print

Leave a Reply

Uso de cookies

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de privacidad y cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies