Enviado em 16/11/2012 - 00:13h
Como passo ponteiro para ponteiro como referencia? e como eu passo essa referencia como referencia para outra funcao?
Na linguagem C
Na linguagem C
Enviado em 16/11/2012 - 00:13h
Enviado em 16/11/2012 - 06:37h
int i=0;
int * p_i=&i; /* "X" é int */
int ** p_p_i=&p_i; /* "X" é (int *) */
int *** p_p_p_i=&p_p_i; /* "X" é (int **) */
i++; /* i==1 */
(*p_i)++; /* i==2 */
(**p_p_i)++; /* i==3 */
(***p_p_i)++; /* i==4 */
int a_i[2]={1, 2};
p_i=a_i; /* a_i não é lvalue, mas é sinônimo de "&a[0]"
(a[0] é lvalue) */
(*p_i)++; /* a[0]==2 */
(*p_p_i)++; /* p_i++, ou seja: p_i==&a[1] */
(*p_i)--; /* a[1]==1 */
Enviado em 16/11/2012 - 13:12h
int i=0;
int * p_i=&i; /* "X" é int */
int ** p_p_i=&p_i; /* "X" é (int *) */
int *** p_p_p_i=&p_p_i; /* "X" é (int **) */
i++; /* i==1 */
(*p_i)++; /* i==2 */
(**p_p_i)++; /* i==3 */
(***p_p_i)++; /* i==4 */
int a_i[2]={1, 2};
p_i=a_i; /* a_i não é lvalue, mas é sinônimo de "&a[0]"
(a[0] é lvalue) */
(*p_i)++; /* a[0]==2 */
(*p_p_i)++; /* p_i++, ou seja: p_i==&a[1] */
(*p_i)--; /* a[1]==1 */
int *n; //Ponteiro normal
funcao(&n); //Chamada para funcao
void funcao(int **n); //Funcao declarada
//Se fosse um ponteiro para ponteiro
//ponteiro para ponteiro eu faria assim, entao?
int **n;
funcao(&(*n)); //Chamada para funcao
void funcao(int ***n); //Funcao declarada, tentei deste modo, e só consegui alterar na funcao chamada, na original continuou com o valor que tinha antes
Enviado em 16/11/2012 - 15:26h
Entre na sua conta para responder.