Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

170
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda