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 Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15
21  Programación / Programación General / Re: ¿Que podria programar? Se aceptan sugerencias en: 24 Marzo 2011, 20:22 pm
Algo util...
22  Programación / Programación C/C++ / Re: [ANSI C] Split(), strlen(), mid(), Instr(), strcpy(). en: 14 Enero 2011, 01:03 am
No, en C++ bool es un tipo de dato primitivo aparte. En C, desde C99 como bien decís, se define mediante macros en stdbool.h, pero es al día de hoy que se sigue definiendo aparte no solo por retrocompatibilidad, también por claridad de código.
_Bool como puse arriba es una palabra reservada por tanto nuevo tipo... y te podes dar cuenta por 2 cosas no se necesita incluir ningun archivo de cabecera (que tenga un typedef, definicion de constante, enumeracion, etc) para poder declarar variables con _Bool y la otra es que las palabras reservadas(luego del estandar) suelen llevar como primer caracter el guion bajo.. al igual que _Complex _Imaginary .. tambien introducidos en C99...
bool en stdbool.h si es una macro... no dije que no lo fuera


No esta establecido que sea una mala practica no utilizar NULL. Es simplemente una cuestión de estilo que se suele aplicar mas que nada en código critico donde se requiera dejar bien en claro que se esta tratando con punteros, pero no mas que eso.

Saludos
Si tenes razon, lo dije sin ser demasiado objetivo... en lo personal no me gusta dejar al compilador que haga ese tipo de conversiones (de constantes a punteros) por que hay situaciones en donde el compilador no es capaz de realizar la conversion...
por ejemplo.. en el paso de un argumento a una funcion que espera un puntero, si la funcion no tiene prototipo el cual no es obligatorio en C, se le esta pasando un int ... en vez de (void *)(0) ...
ademas para mi le da mas legibilidad al codigo...es lo mismo que lo de true o false.. gustos personales
23  Programación / Programación C/C++ / Re: [ANSI C] Split(), strlen(), mid(), Instr(), strcpy(). en: 13 Enero 2011, 15:49 pm
Por otro lado, el tipo de dato bool no existe en C, solo en C++
Saludos

En realidad si existe en C.. se implemento a partir del estandar C99..
se puede utilizar como _Bool ... o bool (incluyendo <stdbool>, donde esta definido)
aunque igual siempre es mejor definirlo para no joder la compatibilidad con compiladores viejos..
Código
  1.  
  2. unsigned long strlen(char* string)
  3. /**
  4.     Retorna la longitud de [string]
  5.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  6. **/
  7. {//no esta mal pero deberias restarle 1 a i antes de retornarla asi no incluye el valor te terminador de cadena, asi el que use tu implementacion de la funcion no tenga que restarle 1 al valor cada vez que la use...
  8.    unsigned long i=0;
  9.    while (*(string++) != '\0') i++;
  10.    return i;
  11. }
  12.  
  13. char* strcpy(char* str_dest,char* str_src)
  14. /**
  15.     Copia una string a otra [*str_src] a [*str_dest].
  16.     Retorna el puntero a [str_dest]
  17.     By BlackZeroX ( http://Infrangelux.sytes.net/ )
  18. **/
  19. {
  20.    while( (*(str_dest++)=*(str_src++) == '\0' ) ); // MAL... la comparacion esta mal .. tenes que comparar si la cadena es distinta a '\0' no igual.... cuando copias tambien esta mal ... ya que estarias copiando el resutado de la comparacion ..la precedencia del operador == es mayor al de asignacion... necesitas parentesis..
  21.    return (str_dest);
  22. }
  23.  
  24.  
  25.  
Por lo demas no lo vi en detalle ... pero vi que los punteros devueltos por malloc los comparas por 0 .. lo cual en teoria no esta mal ya que el compilador se da cuenta que el 0 esta siendo utilizada en un contexto de puntero y hace la conversion a NULL implicitamente.. pero no es una buena practica en C... utiliza siempre NULL.. al igual que cuando inicialices tus punteros...
ah y otra cosa cuando tenes una expresion como *cadena++  los parentesis no son necesarios ... el operador ++ tiene mayor precedencia que el de desreferencia...

Saludos
24  Foros Generales / Noticias / Re: Piden 7 euros por descargar Firefox o Thunderbird en: 11 Enero 2011, 22:44 pm
Una pregunta absurda, si me permitis, claro esta; ¿no se supone que firefox es gratuito?.
Me disculpo por las molestias causadas.
Saludos.
si hubieras leido la noticia no haria falta que lo preguntaras
25  Programación / ASM / Re: Escribir 'A' en mi primer programa : ¿No funciona? en: 1 Enero 2011, 01:40 am
Código
  1. global _start
  2.  
  3. section .code
  4. _start:
  5. push ecx
  6. mov byte [esp], 041h
  7. mov eax, 0x4
  8. mov ebx, 0x1
  9. mov ecx, esp
  10. mov edx, 0x1
  11. int 80H
  12. pop ecx
  13.  
  14.  
  15. mov eax, 1
  16. xor ebx, ebx
  17. int 80H
  18.  
La sintaxis  no es igual en masm y nasm ... la linea que te puso eternal idol para copiar la letra a la pila es para masm, incluso lo puso como comentario en el codigo... en nasm para especificar el tamaño del dato a apuntar es con la palabra byte sola (en el caso de un byte obviamente)...
PD: Un buen libro que podes leer es Professional Assembly Language... es muy completo y de lectura facil y comprensible..

Saludos y feliz año nuevo
26  Foros Generales / Foro Libre / Re: Burradas informáticas CSI en: 1 Enero 2011, 00:11 am
jaja despues de crear la gui interface se codeo el programa para debuggear ojos
27  Seguridad Informática / Análisis y Diseño de Malware / Re: Hoy lanzamos el troyano Flu, Open Source y la comunidad flu-project.com en: 31 Diciembre 2010, 07:21 am
El ordenador que actuará de servidor, necesita .NET Framework instalado. Yo personalmente no lo veo como un problema, es rarísimo que un ordenador hoy en dia venga sin .NET instalado de fábrica.
Si pero XP no venia incluido con .net por defecto... y XP sigue siendo usado por muchos usuarios..y no a todos esos usuarios les importa instalarlo o necesiten instalarlo..
28  Programación / Programación C/C++ / Re: Programa de Concurso de Programacion en: 31 Diciembre 2010, 05:08 am
y como hago que mi vector sea dinamico ¿? (por que si lo noto en el problema es un numero infinito)  :huh:
justamente con memoria dinamica... lo que podrias hacer es declarar el array como un puntero al tipo de dato que quieras usar y con el operador new le asignas la cantidad de memoria que precises... despues el identificador que usaste para declarar el puntero lo podes usar como si enrealidad fuera un array... es decir indexandolo con los operadores [ y ].. o sino usando aritmetica de punteros.. puntero + i... *(puntero + i)

con respecto a tu problema pienso que lo estas planteando mal... el algoritmo no seria asi..el problema te deci que encuentres la subsecuencia creciente mas grande..osea de un array de enteros cual es la secuencia de menor a mayor mas grande...
Como dice el ejercicio P se refiere al numero en el que empieza esa subsecuencia...
y S se refiere a la longitud de esa subsecuencia NO al elemento con el que termina... es decir a la cantidad de elementos que conforman esa subsecuencia...

Citar
tengo en mente que la secuencia es la siguiente:
3 + 1 = 4  (S=3 (ORIGEN))             
4 + 1 = 5 (P=4 (FIN)) ¿por que? porque el siguiente numero no da la suma correcta
1 + 5 = 9 (Error)

El planteamiento esta mal por que el programa no te pide que busques el cumplimiento de una sucesion de patrones....
mira te pongo el ejemplo de como seria la subsecuencia de esa secuencia que pusiste:
secuencia: 3,1,4,1,5,9,2
subsecuencia maxima: 3,4,5,9  (como ves cuenta de 4 elementos, S es igual a 4)
p: 3
s: 4

tambien hay otra subsecuencia maxima empezando por el elemento nº 2
1,4,5,9

la implementacion del algoritmo no es muy compleja... si entendiste lo que puse vas a poder hacerlo facilmente.. cualquier duda pregunta...
29  Programación / Programación C/C++ / Re: [Libros/Papers] C/C++ en: 31 Diciembre 2010, 04:08 am
Muy buena la coleccion de libros... agrego algunos de C que no vi y que me parecen importantes y de lectura recomendada...

The New C Standard: An Economic and Cultural Commentary
Un tocho como de 1500 paginas vendria a ser como una mezcla del documento del estandar de C con el Rationale y anotaciones de las diferencias de las implementaciones en los distintos estandars de C, C++, y otras anotaciones para implementacines en otros lenguajes.. viene bien para usarlo como referencia pero no creo que alguien quisiera leerlo de principio a fin ja..

http://www.coding-guidelines.com/cbook/cbook1_2.pdf


C: A Reference Manual
Uno de las mejores referencias del lenguaje junto con la de JP Plauger(esta online por si alguien la quiere buscar..), muy completo y diferencia las caracteristicas de C tradicional, de C89 y del ultimo estandar..

http://rapidshare.com/files/440052721/C__A_Reference_Manual.rar


C Traps and Pitfalls
No lo lei pero... por lo que lei... trae varios tips para no cometer errores y evitar bugs en el codigo..es medio viejo del 88 o 89 pero creeria que es aplicable todavia..

http://rapidshare.com/files/440052963/C_Traps_and_Pitfalls._Andrew_Koening._Addison-Wesley.rar


C Programming: A Modern Aproach
Para mi uno de los mejores libros para aprender C si estas empezando en la programacion y queres empezar por este lenguaje. En la segunda edicion se cubre las adiciones que hubo el estandar C99 y las diferencias con el anterior.. una de las cosas interesantes que tiene tambien son las secciones "Q&A" estilo faq al final de cada capitulo ... en la que por medio de pegruntas y respuestas se dan aclaraciones acerca del contenido del capitulo .. ya sea de puntos importantes, errores comunes, diferencias entre implementaciones,  y varios buenos tips.. muy completo y de lectura muy recomendada ..

http://www.filesonic.com/file/16286849/953_C.Programming.A.Modern.Approach.rar


ISO/IEC 9899 - Programming languages - C
El documento del corriente estandar (C99), en realidad no es el documento del estandar en si (ese puede comprarse en el sitio de ANSI).. sino se le dice que es como un paper borrador del estandar(aunque fue hecho despues de que saliera el documento oficial) igualmente practicamenete es lo mismo... viene con los tres Technical Corrigendum(son unas pequeñas reformaciones que se le hacen al documento del estandard, ya sea adicionando algo o arreglando parte del documento) que salieron despues...

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf


Rationale for ISO/IEC 9899
El Rationale es el documento que describe el porque detras del estandar... es decir porque se establecieron asi las cosas...

http://www.open-std.org/jtc1/sc22/wg14/www/docs/C99RationaleV5.10.pdf
30  Programación / Programación C/C++ / Re: no se que hacer porfavor ayudenme en: 28 Diciembre 2010, 23:16 pm
Lo que podes hacer es que te pongas a leer si se te aconseja que utilices arrays, lee sobre arrays  :rolleyes:

http://www.google.com.ar/#hl=es&biw=1280&bih=607&q=%22arrays+en+c%22&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=7030631060be8803
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines