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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / Proyecto y soluciones en Visual Studio en: 11 Octubre 2010, 10:55 am
Hola, soy "nuevo" con este IDE. No entiendo muy bien a que se refiere con soluciones. Entonces  mi pregunta es, ¿Qué es un proyecto y una solución en VS?

gracias peña  :xD
12  Programación / Programación C/C++ / ¿Qué hace exacta,emte ... " en: 10 Octubre 2010, 14:00 pm
Hola,

he visto en varios sitios que hacen algo como esto:
Código
  1. int funcion(int arg1, char *arg2, ...) {
  2.    /* lo que sea */
  3. }

Qué hace esos tres puntos  :huh:

graciaaaaas

13  Programación / Programación C/C++ / Duda en función memset en: 20 Septiembre 2010, 18:55 pm
Buenas

Código
  1. memset((void *) &dir_serv, 0, sizeof(struct sockaddr_in));
  2.  

Poniendo o no el (void *), funciona.

Quería preguntaros, que diferencia hay en ponerlo y no ponerlo  y si es adecuado o no.

Graxie ;)
14  Programación / Programación C/C++ / Ayuda con función que devuelve substring en: 19 Septiembre 2010, 20:06 pm
Hola,

Tengo un array de caracteres, p.e:
char texto[100];

Este tiene datos que tengo que parsear para sacar ciertos valores que me interesan.

Quiero hacer una función que me devuelva los substring que hay entre 2 delimitadores.

Si tengo está frase:
Hola, estoy es una prueba.

Si invoco la funcion conlos delimitadores "estoy" y "prueba", me devolvería: es una.
Si hay varias cadenas encerradas entre otros estoy y prueba, me los deolveria también.

Necesito, que me devuelva todas las ocurrencias posibles y el número de estas para luego poder manejarlas en mi programa.

Estoy pensando en como hacerlo pero estoy un poco duditativo. Dentro de la función, he pensado usar strstr para sacar los punteros a "estoy" y "prueba" y con estos datos operarar para sacar la cadena resultante. Pero no sé muy bien, como implementar la llamada la función, gestionar la memoria arrays estáticos o memoria dinámica que pueda manejar y como devolverlos, etc...

Así que me vendría bien que me dieseis ideas de como hacerlo, de cómo obtener, por ejemplo, un string de cadenas con cada ocurrencia y luego otra variable que me indique el nº de estas.


Código
  1. char ** substring(const char *cadena, const char *inicio, const char *fin, int *num_ocurrencias);
  2.  
Algo así tengo por ahora.. iré poniendo lo que se me ocurra. Cualquier sugerencia es bien recibida :)

Gracias adelantadas y perdón por el tocho :P

Lh: No hagas doble post, utiliza el botón modificar.

A ver que os parece esto:
Código
  1. char **substring(const char *cad, const char *begin, const char *end, int *num_ocurrencias) {
  2. char *p, *q;
  3. char **ppc;
  4. int i = 0 , j  = 0;
  5.  
  6.  
  7. for(;;i++) {
  8. p = strstr(cad, begin);
  9. if (p == NULL) break;
  10.  
  11. q = strstr(cad, end);
  12. if (q == NULL) break;
  13.  
  14. p += strlen(begin);
  15. ppc = (char **) realloc(ppc, sizeof(char *) * i+1);
  16. ppc[i] = (char *) realloc(ppc[i], (q - p + 2) * sizeof(char));
  17.  
  18. for (j = 0; j < q-p; j++)
  19. ppc[i][j] = *(p + j);
  20.  
  21. ppc[i][j] = '\0';
  22.  
  23. cad = q + strlen(end);
  24. }
  25. i--;
  26.  
  27. *num_ocurrencias = i;
  28.  
  29. return ppc;
  30. }
  31.  

Cuando invoco a la función:
Código
  1. char **encontrados = NULL;
  2. int num_referencias = 0;
  3.  
  4. encontrados = substring(el_texto, "Inicio", "Fin", &num_referencias);
  5.  
  6. ....
  7.  
  8. for (i = 0; i < num_referencias; i++) {
  9.    free(encontrados[i]);
  10. free(encontrados);
  11. }
  12.  


Parece que funciona.

Un saludo
15  Programación / Programación C/C++ / uso adecuado de constantes para programas con varios modulos en: 17 Septiembre 2010, 13:22 pm
Buenas

Estoy haciendo un programita para un juego en el que tendré varios ficheros con codigo, unos 10 .c y sus correspondientes .h

El asunto, es que necesito tener unas constantes que son las mismas para todos, es algo así como los tipicos .ini  que tienen parametros de configuracion y constantes.

Mi pregunta es, como y donde puedo definirlas para que esté todo debidamente organizado?

Gracias anticipadas
16  Comunicaciones / Redes / Duda sobre ARP y tabla ARP cache en: 17 Septiembre 2010, 12:59 pm
Buenas

tengo este escenario:

 ---------
 |  HUB |
 ---------
      |
-------------------------------
  |               |                   |
  pc1         pc2                pc3


Hago un ping de pc1 a pc2

Inicialmente las tablas Cache ARP están vacías. Pc1 hace una petición ARP a la dirección de broadcast. Al hacer esta petición, que tablas caché se modifican con la dirección MAC de pc1? La de pc2 sólo? También la de pc3?

Gracias anticipadas
17  Programación / Programación C/C++ / Variables globales en programas modulares en: 11 Septiembre 2010, 13:03 pm
Hola a tod@s

Curioseando en el código de algunas aplicaciones de fuente abierta, he visto que el main.c se usa mucho declarar variables globales, hasta el punto de haber 40 o 50 o incluso más. Supongo que esto lo hacen para poder compartirlas entre varios modulos haciéndolas accesibles con extern.

Mi duda es:

En cuánto a eficiencia del programa y al buen estilo que se debe seguir para programar... ¿Es conveniente usar tantas variables globales? O por el contrario ¿Es mejor usar más el paso de variables locales como parámetros de funciones?

Agradecería cualquier opinión al respecto, ya que tengo que programar una aplicación de sockets, y tendre unos 5 o 6 ficheros con código, en el que tengo que compartir descriptores, estructuras y cosas así, y  no sé muy bien como estructurar la aplicación en cuanto a este tema.

Gracias de antemano.

Un saludo
18  Comunicaciones / Redes / Fragmentación, MTU, protocolo IP en: 12 Agosto 2010, 16:02 pm
Hola, estoy haciendo calculos en la fragmentación para IP y estoy un poco liado con el fragment offset y el MTU.

Por lo que me he fijado, no se tiene en cuenta la cabecera Ethernet para el MTU.

Si mandamos este paquete:
$ping -c 1 -s 1473 IP

eso manda 1472 bytes de datos en un primer paquete fragmentado y para el siguiente envía el byte que queda.

Pero, si MTU = 1500  y tenemos que enviar las cabeceras junto con los datos:

Cabecera Ethernet    14
Cabecera IP         20
Cabecera ICMP      8

Total: 42

1500 - 42 = 1458

Es decir, que teniendo en cuenta las tres cabeceras, en el primer fragmento, como mucho, se peude enviar 1458 de datos, pero envía 1472, que resulta de tener encuenta la cabecera IP  e ICMP.

¿Alguién podría explicarme por qué no se tiene en cuenta la cabecera EThernet?

Gracias. Un salduo.
19  Programación / Programación C/C++ / Memoria en campos de bits en: 31 Julio 2010, 18:00 pm
Hola,

Código
  1. /*
  2.  * campos de bits
  3.  */
  4. #include <stdio.h>
  5.  
  6. struct palabra {
  7. unsigned car_ascii : 7;
  8. unsigned bit_paridad : 1;
  9. unsigned operacion : 5;
  10. unsigned : 18;
  11. unsigned bit_signo : 1;
  12. };
  13.  
  14. int main(int argc, char *argv[]) {
  15. struct palabra cb = {'C', 1, 0x1E, 0};
  16.  
  17. printf("campos de bits: %x\n\n", cb);
  18. printf("bit signo %x\n", cb.bit_signo);
  19. printf("operacion : %x\n", cb.operacion);
  20. printf("bit de paridad: %x\n", cb.bit_paridad);
  21. printf("caracter %c : %x\n", cb.car_ascii, cb.car_ascii);
  22.  
  23. return 0;
  24. }
  25.  

Alguien sabría explicarme porque este programa da este resultado:

campos de bits: 1ec3

bit signo 0
operacion : 1e
bit de paridad: 1
caracter C : 43


No me entra en la cabezota como hace las asignaciones y la ordenación en memoria
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines