Foro de elhacker.net

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:
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main(void)
  5. {
  6. char **nombre;
  7. nombre = (char **)malloc(10 * sizeof(char *));
  8. nombre[0] = (char *)malloc(10 * sizeof(char));
  9. gets(nombre[0]);   // ya se que no se debe usar
  10.  
  11. return EXIT_SUCCESS;
  12. }
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
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 ] )