Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!