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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: 1 [2] 3 4 5
11  Programación / Programación C/C++ / Forma de evaluación de los operandos de un operador. en: 24 Enero 2017, 10:20 am
Buenas, leyendo un libro de C, decía que solo en los operandos de los operadores ("&&","||","?:" y ",") se especifica la evaluacion de un operador.

y por lo tanto en el siguiente ejemplo:

Código
  1. a[i]=i++;
  2.  

no se sabe si el subindice es el valor antes o después del incremento.

mi duda es: como el operador [] es el de mas alta precedencia la i  seria el valor viejo cualquier sea el compilador con el que se compile.¿ es acertada la conclusion?

si en cambio, el código seria así:

Código
  1. a[i]=(i++);
  2.  

ahi el subindice si seria el nuevo ya que el operador () esta antes que el []

mi ultima duda:

si un operador unario como cast se pone al lado de una expresión compuesta
Código
  1. (int)(a+b)
  2.  

que se hace primero:
según el operador (), como la asociatividad es de izquierda a derecha, se ara el cast, pero el operador cast se evalúa de derecha a izquierda
12  Programación / Programación C/C++ / funcion que devuelve un puntero de una variable static en: 24 Enero 2017, 09:42 am
Buenas, me surgió la duda si es posible realizar una función que devuelva un puntero con la dirección de memoria de una variable static definida dentro de la función. por ejemplo pasarle la dirección de un arreglo definido como static dentro de una función.
la idea de esa función, es que quien la usa no se deba preocupar por el largo del arreglo debido a que este se crearía en la misma función (dentro de un if{..} por ejemplo).
13  Programación / Programación C/C++ / Unsigned char y operador complemento a1(~) en c en: 12 Enero 2017, 07:20 am
Buenas resulta que compile el siguiente codigo:
Código
  1. Printf("%d",~((unsigned char)~0));
  2.  

Al compilarlo da -256
Segun la logica que sigo yo y sabiendo que un char tiene 8 bits no entiendo como llega a ese resultado.

Primero al cero le realiza su complemento a1 por lo que queda todos unos,sabiendo que el char tiene ocho bits queda 11111111 que seria el numero 255. Y si luego a todos esos unos se le realiza su complemento a1 quedan todos ceros.
14  Programación / Programación C/C++ / ¿Error por falta de corchetes? en: 11 Enero 2017, 00:39 am
Buenas estoy intentando no usar corchetes en el código pero no funciona como quiero, creo que es porque no entiendo bien cuando están explictos (cuando no son necesarios)

Código
  1. while(expresion)
  2.    if(expresion)
  3.        if (expresion)
  4.            while(expresion)
  5.                ;  //solo hace lo de adentro del while
  6.        else
  7.            while(expresion)
  8.                ;  //solo hace lo de adentro del while
  9.    else{
  10.        if(expresion)
  11.            expresión; //solo una linea
  12.        else if(expresion)
  13.            expresion; //solo una linea
  14.        else if(expresion)
  15.            expresion; //solo una linea
  16.        else if(expresion)
  17.            expresion; //solo una linea
  18.        if (expresion) //nuevo if
  19.            expresion; //solo una
  20.    }
  21. if (expresion) //este if no estaria adentro del primer while
  22.    expresion; //solo una linea
  23. else
  24.    expresion; //solo una linea
  25.  

segun lo que yo entiendo por los paréntesis explícitos, todas las sangrías que he dejado son correctas, pero el código no hace lo que pido.
15  Programación / Programación C/C++ / Problema con el operador de modulo(%) en C en: 9 Enero 2017, 21:19 pm
Buenas escribo el siguiente codigo en c:

Código
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. int c,i;
  5. for(i=0;i<=8;i++)
  6. printf("el modulo entre %d y 8 es: %d\n",i,i%8);
  7. return 0;
  8. }
  9.  

y lo que me sale es esto:

el modulo entre 0 y 8 es: 0
el modulo entre 1 y 8 es: 1
el modulo entre 2 y 8 es: 2
el modulo entre 3 y 8 es: 3
el modulo entre 4 y 8 es: 4
el modulo entre 5 y 8 es: 5
el modulo entre 6 y 8 es: 6
el modulo entre 7 y 8 es: 7
el modulo entre 8 y 8 es: 0

pero creo que tendría que ser esto:
el modulo entre 0 y 8 es: 0
el modulo entre 1 y 8 es: 1
el modulo entre 2 y 8 es: 2
el modulo entre 3 y 8 es: 3
el modulo entre 4 y 8 es: 5
el modulo entre 5 y 8 es: 6
el modulo entre 6 y 8 es: 7
el modulo entre 7 y 8 es: 8
el modulo entre 8 y 8 es: 0

que seria el primer numero después de la coma
16  Programación / Programación C/C++ / Funcionamiento fgets en: 5 Enero 2017, 01:56 am
Buenas estaba viendo una posible implementacion de la función fgets, que esta en el libro "el lenguaje de programacion C".

Código
  1. char *fgets(char *s, int n, FILE *iop)
  2. {
  3. register int c;
  4. register char *cs;
  5.  
  6. cs=s;
  7. while (--n>0&&(c=getc(iop))!=EOF)
  8.    if ((*cs++=c)=='\n)
  9.        break;
  10. *cs='\0';
  11. return (c==EOF&&cs==s)?NULL : s;
  12. }
  13.  

mi duda es, para que fgets funcione "s" debe ser un arreglo o tener asignado una memoria con malloc o calloc y n no puede ser mayor a la cantidad de celdas reservadas.
17  Programación / Programación C/C++ / a que refiere esta sintaxis en: 3 Enero 2017, 08:34 am
Código
  1. typedef struct{
  2. char *name;
  3. int nia;
  4. }datos;
  5. struct elemento_t{
  6. datos valor;
  7. struct elemento_t *next;
  8. };
  9. typedef struct elemento_t elemento_type;
  10. typedef struct{
  11. int tamanho;
  12. int num_elementos;
  13. double densidad_deseada;
  14. elemento_type **tabla;
  15. }tabla_type;

el primer typedef define un tipo de datos llamado "datos" que es una estructura que tiene un puntero a char y un entero.
luego define otra estructura llamada elemento_t que adentro contiene una estructura tipo "datos" creada anteriormente y que tiene el nombre valor, y un puntero a la misma estructura.
luego lo que hace es definir a la estructura ultima como un tipo de dato llamado elemento_type.
por ultimo define una estructura como table_type que contiene dos enteros, un double y un apuntador que apunta a apuntadores que apuntan al tipo de dato elemento_type.

AHORA BIEN, MI DUDA VIENE EN EL SIGUIENTE PEDAZO DE CÓDIGO:

Código
  1. tabla_type table;
  2. int i;
  3. table.tamanho=20;
  4. tabla.num_elementos=0;
  5. tabla.densidad_deseada=0.25;
  6. tabla.tabla = (elemento_type **) malloc (sizeof(elemento_type *)*table.tamanho);
  7. for (i=0;i<table.tamanho;i++)
  8. {
  9.     tabla.tabla[i]=NULL;
  10. }
  11.  

¿a que se refiere la expresión "tabla.tabla"?

se que tabla es un puntero que apunta a un puntero que apunta a una estructura de tipo elemento_type

lo que me confunde es el signo de puntuación, según entiendo con el signo de puntuación se entra a los miembros de una estructura.
18  Programación / Programación C/C++ / Puntero a función. en: 18 Diciembre 2016, 00:05 am
Buenas, tengo una duda con este código que creo que esta mal:


No tendría que ser:

Código
  1. (int (*)(viod *, void *))=(numeric ? numcmp:strcmp));
19  Programación / Programación C/C++ / Duda sobre función en: 16 Diciembre 2016, 04:14 am


porque dice que es esencial pasar la dirección del array ¿no se podría pasar como argumento de la función el arreglo en ves de un puntero y trabajar con el arreglo dentro de la función?

mi pregunta es:¿es necesario hacerlo con puntero?
20  Programación / Programación C/C++ / Separar un programa en varios archivos fuentes: en: 15 Diciembre 2016, 05:52 am
a continuación la imagen de un programa separado en varios archivos fuentes, mi duda es:

si la función getch y ungetch del archivo getch.c se usan en el archivo getop.c, el archivo getch.c no debería también incluir a calc.h

¿que pasaría si los prototipos de las funciones de getch y ungetch se declaran en el archivo getch.c en ves del archivo calc.h?

¿porque el archivo stack.c incluye a calc.h, si no necesita ninguna funcion o variable externa al archivo?



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