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

241
Visualizações
¿Cuál es la forma correcta de inicializar el doble puntero en c?

Como título, quiero saber cómo inicializar el puntero doble con el sizeof de un puntero.

Por ejemplo

 int **p=malloc(sizeof *p * rows); for(size_t i = 0; i < rows; i++){ p[i]=malloc(sizeof ? * cols); }

¿Qué debo llenar ? .

Cualquier ayuda sería apreciada.

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

0

¿Qué debo rellenar?.

En general cuando tienes

 X = malloc(sizeof ? * NUMBER);

el ? debe ser reemplazado con el tipo al que apunta X Eso puede escribirse simplemente como *X .

Entonces la línea:

 p[i]=malloc(sizeof ? * cols);

es para ser:

 p[i]=malloc(sizeof *p[i] * cols);

Tenga en cuenta que una matriz 2D se puede crear mucho más simple. Todo lo que necesitas es

 int (*p)[cols] = malloc(sizeof *p * rows);

Aquí p es un puntero a una matriz de cols int . En consecuencia sizeof *p será el tamaño de una matriz de cols int .

El uso de esta técnica basada en VLA significa que puede asignar la matriz 2D utilizando un solo malloc . Además de simplificar el código (es decir, solo 1 malloc ), también garantiza que toda la matriz 2D esté en la memoria consecutiva, lo que puede brindarle un mejor rendimiento de caché.

over 4 years ago · Santiago Trujillo Relatório

0

Parece que desea que p sea una matriz que pueda contener punteros, y el número de punteros es rows . Entonces puedes asignar memoria para p de esta manera:

 int ** p = malloc(sizeof(int *) * rows);

Ahora, si desea que p[i] apunte a una matriz que contenga cols ints, haga lo siguiente:

 p[i] = malloc(sizeof(int) * cols);
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