Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: David8 en 6 Mayo 2014, 11:16 AM

Título: Acceder a los caracteres de un array de punteros
Publicado por: David8 en 6 Mayo 2014, 11:16 AM
Por ejemplo si tengo:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
char **nombre;
nombre = (char **)malloc(10 * sizeof(char *));
nombre[0] = (char *)malloc(10 * sizeof(char));
gets(nombre[0]);   // ya se que no se debe usar

return EXIT_SUCCESS;
}

Pongamos ahora que introduzco por teclado "HOLA", ¿cómo hago para acceder por ejemplo a la 'H' o a cualquier otro caracter de nombre[0]

Un saludo
Título: Re: Acceder a los caracteres de un array de punteros
Publicado por: eferion en 6 Mayo 2014, 11:30 AM
-> nombre es un vector de cadenas de caracteres
-> nombre[ i ] permite acceder a cualquiera de esas cadenas de caracteres
-> nombre[ i ][ j ] permite acceder a los caracteres de una de esas cadenas.
Título: Re: Acceder a los caracteres de un array de punteros
Publicado por: David8 en 6 Mayo 2014, 11:52 AM
Muchas gracias. La cosa es que lo había probado antes pero use la función puts() en vez de printf("%c", ...) y me daba error como es lógico.

Un saludo
Título: Re: Acceder a los caracteres de un array de punteros
Publicado por: eferion en 6 Mayo 2014, 11:54 AM
puts( nombres[0][0] ) debería funcionarte
Título: Re: Acceder a los caracteres de un array de punteros
Publicado por: David8 en 6 Mayo 2014, 12:21 PM
Cita de: eferion en  6 Mayo 2014, 11:54 AM
puts( nombres[0][0] ) debería funcionarte

Da el siguiente error:
Citar
invalid conversion from 'char' to 'const char*' [-fpermissive]

Un saludo
Título: Re: Acceder a los caracteres de un array de punteros
Publicado por: eferion en 6 Mayo 2014, 12:24 PM
Perdón.

vale, cierto, tu quieres sacar un solo carácter... para eso tienes que usar putchar( nombres[ 0 ][ 0 ] )

puts es para cadenas de texto... es decir, puts( nombres[ 0 ] )