Ir para conteúdo
Fórum Script Brasil

Mortanius

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Mortanius

Mortanius's Achievements

0

Reputação

  1. Valeu por responder, vangodp. Tinha tirado essa dúvida ainda essa madrugada noutro fórum e, de fato: estava confundindo arranjos com vetores, achando que se comportavam da mesma forma, mas o arranjo tem tamanho fixo, e o mesmo vale pro endereço, nem como ponteiro pude usar. Valeu.
  2. Tive a ideia de alterar os endereços de dois ponteiros (um pelo outro) invés de trocar os valores armazenados por eles. A intenção seria fazer isso com vetores (arrays), já que seria mais viável, aí veio o problema: Funcionou com ponteiros mas não funcionou com os vetores. Podem me ajudar a entender por quê? Os códigos: Ponteiros: #include<stdio.h> #include<stdlib.h> void invert_ad (int** a, int** b) { int* temp; temp = *a; *a = *b; *b = temp; } main() { int a = 10; int* pointer_a = &a; int** ppointer_a = &pointer_a; int b = 20; int* pointer_b = &b; int** ppointer_b = &pointer_b; printf("pointer_a Adress: %p\n", pointer_a); printf("pointer_b adress: %p\n", pointer_b); invert_ad (ppointer_a, ppointer_b); printf("pointer_a adress: %p\n", pointer_a); printf("pointer_b adress: %p\n", pointer_b); } Arrays: #include<stdio.h> #include<stdlib.h> void invert_ad (int** a, int** b) { int* temp; temp = *a; *a = *b; *b = temp; } main() { int array_a[5] = {0, 1, 2, 3, 4}; int array_b[5] = {5, 6, 7, 8, 9}; int** parray_a = &array_a; int** parray_b = &array_b; printf("array_a adress %p\n", array_a); printf("array_b adress %p\n", array_b); invert_ad (parray_a, parray_b); printf("array_a adress %p\n", array_a); printf("array_b adress %p\n", array_b); }
×
×
  • Criar Novo...