Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
Cómo almacenar la dirección de una matriz [] en una variable

Esto parece una pregunta tonta. Tengo una matriz de caracteres y quiero almacenar la dirección de la matriz en otra variable, pero parece que no puedo declarar el tipo correcto para la dirección de la matriz (estoy usando gcc):


EN:

 int main(void){ char cha[] = "abcde"; char **arrayAddress = &cha; }

AFUERA:

 arrayaddress.c: In function 'main': arrayaddress.c:3:25: warning: initialization of 'char **' from incompatible pointer type 'char (*)[6]' [-Wincompatible-pointer-types] 3 | char **arrayAddress = &cha; | ^

Esto es de esperar, he leído en otra parte que el tipo de cha debería ser char(*)[6] . Pero cuando trato de declarar arrayAddress con este tipo, mi programa falla:


EN:

 int main(void){ char cha[] = "abcde"; char (*)[6]arrayAddress = &cha; }

AFUERA:

 arrayaddress.c: In function 'main': arrayaddress.c:3:10: error: expected identifier or '(' before ')' token 3 | char (*)[6]arrayAddress = &cha; | ^ make: *** [<builtin>: arrayaddress] Error 1 ^

¿Cómo defino arrayAddress correctamente?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Está escrito :

 char (*arrayAddress)[6] = &cha;

Observe que el nombre de la variable se coloca en medio de la expresión.

over 4 years ago · Santiago Trujillo Relatório

0

Las matrices se descomponen en punteros.

 char cha[] = "abcde"; char *p1 = cha; char (*arrayptr)[sizeof(cha)] = &cha;

cha , &cha[0] y &cha hacen referencia al mismo primer elemento de la matriz cha , la única diferencia es el tipo.

  1. cha y &cha[0] tiene tipo: puntero a char
  2. &cha tiene tipo: puntero a una matriz de 6 char de caracteres.
over 4 years ago · Santiago Trujillo Relatório

0

Si su compilador admite la extensión typeof (gcc lo hace), entonces puede definir el puntero como:

 typeof(char (*)[6]) arrayAddress = &cha;

O incluso más limpio como:

 typeof(char[6]) * arrayAddress = &cha;
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda