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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No consigo modificar variable global
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No consigo modificar variable global  (Leído 2,106 veces)
Gamerpc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
No consigo modificar variable global
« en: 23 Mayo 2018, 10:48 am »

Hola a todos,

Hace poco que he empezado a programar en C y me ha surgido un problema, a ver si alguien me puede ayudar.

He declarado esto en c:

unsigned char nd8;

como variable global, y quiero modificar su valor mediante una función, esta:

void multiples_partidas unsigned char *var_promedio);

en el que var_promedio es la variable global.

en esta función tengo:

quo= 50;

y para modificar la variable global uso

*var_promedio =quo;

pero su valor no se modificar.

Pd: en el compilador no me da ningún error.

Un saludo y gracias de antemano


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: No consigo modificar variable global
« Respuesta #1 en: 23 Mayo 2018, 16:46 pm »

si la variable es
Código:
unsigned char nd8;

entonces lo unico que la modificará es algo tal que cambie su valor... es decir nd8 = algo (ya sea por referencia, puntero, etc) pero donde nd8 sea relacionada, en lo poco que muestras parece que no usas nd8 de nuevo


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Gamerpc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: No consigo modificar variable global
« Respuesta #2 en: 23 Mayo 2018, 18:49 pm »

El codigo completo es este:
Código
  1. char CASELLA_BUIDA = '.';
  2.  
  3. /* variables globales */
  4. unsigned char nd8, nd9, nd10;  
  5.  
  6. char tablero_barcos[100];        
  7. char tablero_disparos[100];    
  8.  
  9. void principal()
  10. {
  11.    multiples_partidas(tablero_barcos, tablero_disparos,  8, &nd8 );
  12.    multiples_partidas(tablero_barcos, tablero_disparos,  9, &nd9 );
  13.    multiples_partidas(tablero_barcos, tablero_disparos, 10, &nd10);
  14.    printf("n8: %i\n", &nd8);
  15.    printf("n9: %i\n", &nd9);
  16.    printf("n10: %i\n", &nd10);
  17. }
  18. void multiples_partidas(char tablero_barcos[], char tablero_disparos[],
  19.                        unsigned int dim, unsigned char *var_promedio)
  20. {
  21.    unsigned int quo, mod;
  22.    int num_partidas=0;
  23.    int disparos_totales=0;
  24.    int error=0;
  25.    while(num_partidas<150){
  26.        B_inicializa_barcos(tablero_barcos, dim);
  27.        inicializa_matriz(tablero_disparos, dim, dim, CASELLA_BUIDA, dim);
  28.        disparos_totales=disparos_totales + partida_completa(tablero_disparos, dim);
  29.        num_partidas=num_partidas+1;
  30.    }
  31.    printf("disparos totales: %i\n", disparos_totales);
  32.    error=div_mod(disparos_totales, num_partidas, &quo, &mod);
  33.    printf("quo: %i\n", quo);
  34.    printf("num partidas: %i\n", num_partidas);
  35.    printf("error: %i\n", error);
  36.    *var_promedio =quo;
  37. }

Lo único que hace el main es llamar a principal();


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex



No sabia que los códigos deben ir en etiquetas GeSHi sorry

tampoco doble post... usa el botón modificar
« Última modificación: 23 Mayo 2018, 19:02 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: No consigo modificar variable global
« Respuesta #3 en: 23 Mayo 2018, 19:01 pm »

tu problema no está en la algoritmia... está en el uso de los printf... se usan sin & si no,en lugar de imprimir el valor imprimes su dirección
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Gamerpc

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: No consigo modificar variable global
« Respuesta #4 en: 23 Mayo 2018, 19:07 pm »

tu problema no está en la algoritmia... está en el uso de los printf... se usan sin & si no,en lugar de imprimir el valor imprimes su dirección

Menudo error... que empanamiento.

Muchas gracias por la ayuda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SMF: $context variable global
PHP
[KMT] 4 3,168 Último mensaje 2 Enero 2008, 22:02 pm
por [KMT]
variable global
Programación Visual Basic
xexio 8 4,403 Último mensaje 4 Marzo 2010, 22:12 pm
por xexio
Problema con variable 'global'
Programación C/C++
xRodak 2 1,946 Último mensaje 7 Febrero 2014, 01:23 am
por xRodak
variable global
Programación C/C++
7emiliosk8 1 1,564 Último mensaje 12 Febrero 2017, 13:10 pm
por GGZ
Acceder y modificar una variable global desde distintos threads
Java
fileteruso 8 4,752 Último mensaje 9 Febrero 2019, 02:50 am
por 6666
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines