elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5
11  Programación / Programación C/C++ / A que equivale... en: 8 Mayo 2014, 21:35 pm
Al igual que en un puntero a puntero para acceder a casa uno de los elementos se puede usar:
Código:
nombre[x][y]
Tanto como
Código:
*(*(nombre + y) + x)

Si tengo por ejemplo un puntero a una estructura  tal que
Código:
struct estructura *nombre;
nombre = malloc(n * sizeof(*nombre));
Y un miembro de esa estructura es por ejemplo
Código:
char **cadena;

Para acceder a un elemento j de ese miembro en una estructura i uso
Código:
(jugador + i) -> cadena[j];

Mi pregunta es, ¿Cómo represento lo anterior como notación completa de punteros? Es decir sin usar los corchetes que uso en cadena[j] como en
Código:
*(*(nombre + y) + x)

Un saludo
12  Programación / Programación C/C++ / Re: Acceder a los caracteres de un array de punteros 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
13  Programación / Programación C/C++ / Re: Acceder a los caracteres de un array de punteros 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
14  Programación / Programación C/C++ / Acceder a los caracteres de un array de punteros 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
15  Programación / Programación C/C++ / Re: Duda con estructuras C en: 5 Mayo 2014, 12:42 pm
Falta entre otras cosas las directivas de inclusión y la declaración de la variable "Jugador", por favor publica el código fuente completo.

Un saludo

Ya lo solucioné. Es que tenía un for que en un caso particular del índice cambiaba su valor a 0 y esto hacía un bucle infinito.

Muchas gracias por la ayuda, un saludo.

16  Programación / Programación C/C++ / Re: Me da error y no sé porqué en: 4 Mayo 2014, 21:30 pm
Yo te recomendaria que busques otro IDE mas moderno, por que este tiene el compilador y las librerias desactualizadas, tienes alternativas como el Code::Blocks que te recomiendo muchisimo

Saludos

El problema es que tengo Windows 8.1 con procesador de 64 y no compila, por eso me decanté por el Dev C++

Un saludo
17  Programación / Programación C/C++ / Re: Me da error y no sé porqué en: 4 Mayo 2014, 21:16 pm
Esta muy raro eso, el compilador te deberia lanzar un error diciendo que la función no se ha definido. Podrias decir que compilador usas

Uso el Dev C++. El error que me salía, por lo que no ejecutaba era el de linked error.

Como no me dió error en la función no me fije si estaba bien esa parte de la sintaxis.
Un saludo.
18  Programación / Programación C/C++ / Re: Me da error y no sé porqué en: 4 Mayo 2014, 21:02 pm
Esta linea

Código
  1. *(posicion + i)--;

La debes cambiar por esta

Código
  1. (*(posicion + i))--;

Debes conocer la prioridad que tienen los diferentes operadores



Si eso ya lo probé y es verdad que lo tenía mal. Pero además, he estado ahora mirando y es que llamo a la funcion como
Código:
funcion(situarPosiciones);

Y funcion no la tengo declarada. No sé porqué el compilador no me avisó de eso.

Un saludo y muchas gracias
19  Programación / Programación C/C++ / Me da error y no sé porqué en: 4 Mayo 2014, 19:59 pm
Este es el código:
Código
  1. #include<stdio.h>
  2.  
  3. void situarPosiciones(int *posicion);
  4.  
  5. int main(void)
  6. {
  7.  
  8. static int situarPosiciones[5] = {0,1,2,3,4};
  9.  
  10.  
  11. funcion(situarPosiciones);
  12.  
  13.  
  14. return 0;
  15. }
  16.  
  17. void situarPosiciones(int *posicion)
  18. {
  19. int i;
  20.  
  21. for(i = 0; i < 5; i++){
  22. if(*(posicion + i) != 0){
  23. *(posicion + i)--;
  24. }
  25. else{
  26. *(posicion + i) = 4;
  27. }
  28. }
  29.  
  30. return;
  31. }

Lo que pretende es que cada vez que llame a la función me salga algo como:
|0|1|2|3|4| 1º llamada
|4|0|1|2|3| 2º llamada
|3|4|0|1|2| 3º llamada
--------------------------

Pero no sé que puede estar fallando

Un saludo
20  Programación / Programación C/C++ / Re: Duda con estructuras C en: 2 Mayo 2014, 18:25 pm
Porque cuando declaras una variable fuera de toda función (en tu caso "Jugador") y quieres darle un valor inicial este debe ser uno constante como 123 o "alguna cadena" (no puedes utilizar llamadas a función).

Un saludo

Esta duda la tengo porque estoy haciendo un programa que simule el juego del poker.
Y relacionado con esto tengo lo siguiente:

Código:
typedef char* String;

struct jugador{
String nombreJugador;
int nFichas;  
int posicion;  
String *cara;
String *palo;
};

// código

int main(void)
{
// código
Jugador = malloc(5 * sizeof(*Jugador));
//código
reservaMemoriaManos();
//código

return EXIT_SUCCESS;
}

void reservaMemoriaManos()
{
int i, j;

for(i = 0; i<5; i++){
(Jugador + i) -> cara = (char **)malloc(2 * sizeof(char *));
(Jugador + i) -> palo = (char **)malloc(2 * sizeof(char *));

for(j = 0; j<2; j++){
(Jugador + i) -> cara[j] = (char *)malloc(7 * sizeof(char));
(Jugador + i) -> palo[j] = (char *)malloc(10 * sizeof(char));
}
}

return;
}

Y en esta última función me parece que falla el programa. Pero no sé que es.
Lo que intento hacer es que cada uno de los 5 jugadores declarados con

Código:
Jugador = malloc(5 * sizeof(*Jugador));
tengan 2 cartas, por los que deberán tener 2 palos y 2 figuras.

Lo escribo aquí para no abrir un nuevo tema, ya que está relacionado con lo anterior.

Un saludo
Páginas: 1 [2] 3 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines