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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14
11  Programación / Programación C/C++ / Error al crear punteros a estructuras. en: 5 Marzo 2015, 15:53 pm
Buenas. Pretendo recordar más o menos cómo se trabaja en C, pero llevo tiempo sin tocarlo.
He hecho una estructura de un LinkedArray de una vieja práctica que tenía por ahí, pero la función crear creo que la tengo mal.
Ésta función tendría que crear el LinkedArray con todos los elementos con valor 0, tamaño tam (todos el mismo) y puntero al siguiente.
Pues si creo uno y justo después lo muestro me pone tal que así:
{0, 1966492712, 1966492712, 1966492712, 1966492712}

Tiene pinta de que el primero me lo hace bien, pero cuando entra al for usa punteros a la misma zona de memoria, pero esa parte la estoy haciendo sin punteros, por lo que no entiendo qué ocurre.
Espero me ayudeis.

Os paso el .h:
Código
  1. /*
  2.  * File:   main.h
  3.  * Author: NikNitro
  4.  *
  5.  * Created on 3 de marzo de 2015, 19:38
  6.  */
  7.  
  8. #ifndef MAIN_H
  9. #define MAIN_H
  10.  
  11. typedef struct Array* Primero;
  12. struct Array {
  13.    int valor;
  14.    int tam;
  15.    Primero* sig;
  16. };
  17.  
  18. void Crear(Primero* primero, int n);
  19. void Destruir(Primero* primero);
  20. void Obtener(Primero primero, int index, int *ok, int *valor);
  21. void Cambiar(Primero* primero, int index, int valor);
  22. void Mostrar(Primero primero);
  23.  
  24.  
  25. #endif /* MAIN_H */
  26.  
  27.  
  28.  

Y el .c

Código
  1. /*
  2.  * File:   main.c
  3.  * Author: NikNitro
  4.  *
  5.  * Created on 3 de marzo de 2015, 19:37
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include "main.h"
  11.  
  12. /*
  13.  *
  14.  */
  15.  
  16. void Crear(Primero* primero, int n) {
  17.     *primero = (Primero)malloc(sizeof(struct Array));
  18.     (*primero)->tam = n;
  19.     (*primero)->valor = 0;
  20.     (*primero)->sig = NULL;
  21.     Primero *ant = primero;
  22.     int i;
  23.     for(i=1; i<n; i++) {
  24.         Primero nuevo;
  25. //         (*nuevo) = (Primero)malloc(sizeof(struct Array));
  26.         nuevo->valor=0;
  27.         nuevo->tam = (*primero)->tam;
  28.         nuevo->sig = NULL;
  29.         (*ant)->sig = &nuevo;
  30.         ant = (*ant)->sig;
  31.     }
  32.  
  33. }
  34. void Destruir(Primero* primero) {
  35.    Primero ptr;
  36.    while (*primero != NULL) {
  37.        ptr=*(*primero)->sig;
  38.        free((void *)*primero);
  39.        *primero=ptr;
  40.    }
  41. }
  42. void Obtener(Primero primero, int index, int *ok, int *valor) {
  43.  
  44.    if((*valor)<primero->tam) {
  45.    int i;
  46.    Primero aux = primero;
  47.    for(i = 0; i < index; i++) {
  48.        aux = *(aux->sig);
  49.    }
  50.    (*valor)=aux->valor;
  51.    (*ok) = 1;
  52.    } else {
  53.        (*ok) = 0;
  54.    }
  55. }
  56. void Cambiar(Primero* primero, int index, int valor) {
  57.    int i;
  58.    Primero *aux = primero;
  59.    for(i = 0; i < valor; i++) {
  60.        aux = (*aux)->sig;
  61.        printf("%d\n", (*aux)->valor);
  62.        fflush(stdout);
  63.    }
  64.    (*aux)->valor = valor;
  65.  
  66. }
  67. void Mostrar(Primero primero) {
  68.    int ultimo = primero->tam;
  69.    int i;
  70.    printf("{");
  71.    for(i=0; i < ultimo-1; i++) {
  72.        printf("%d, ", primero->valor);
  73.    fflush(stdout);
  74.        primero = *(primero->sig);
  75.    }
  76.    printf("%d}", primero->valor);
  77.    fflush(stdout);
  78. }
  79.  
  80. int main() {
  81.    printf("Vamos a crear un array\n");
  82.    fflush(stdout);
  83.    Primero p;
  84.    Crear(&p, 5);
  85. //   int ok;
  86. //   int valor;
  87. //    Obtener(p, 3, &ok, &valor);
  88. //    printf("%d", valor);
  89. //   fflush(stdout);
  90. //    Cambiar(&p, 2, 1);
  91.    Mostrar(p);
  92.    return (EXIT_SUCCESS);
  93. }
  94.  
  95.  
  96.  

Gracias por adelantado gente.

Saludos ;)
12  Programación / Programación C/C++ / No consigo configurar el compilador en: 3 Marzo 2015, 20:13 pm
Buenas. Seguramente éste tema esté más que trillado, pero yo no consigo hacerlo, y llevo dos días intentandolo.
He instalado NetBeans (El completo. Trae para todos los lenguajes) y tengo tanto Mingw como Cygwin en carpetas independientes. He modificado el path, he cambiado desde tools->options->build tools... Y siempre que intento compilar me sale el mismo error.
Citar
"/D/Programas/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/d/IDES/CWorkSpace/LinkedArray'
"/D/Programas/MinGW/msys/1.0/bin/make.exe"  -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/linkedarray.exe
make.exe[2]: Entering directory `/d/IDES/CWorkSpace/LinkedArray'
mkdir -p build/Debug/MinGW-Windows
rm -f "build/Debug/MinGW-Windows/main.o.d"
gcc    -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.c
/bin/sh: gcc: command not found
make.exe[2]: *** [build/Debug/MinGW-Windows/main.o] Error 127
make.exe[2]: Leaving directory `/d/IDES/CWorkSpace/LinkedArray'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/d/IDES/CWorkSpace/LinkedArray'
make.exe": *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 457ms)

No se que más hacer ya... -.-
Uso Windows 8.1

Saludos ;)
13  Foros Generales / Foro Libre / Extraño archivo xml con información de algunos de nosotros. en: 2 Febrero 2015, 16:28 pm
Buenas. Seguramente sea que soy un paranoico pero quería compartir lo que he encontrado con vosotros, a ver que os parece.

Resulta que estoy mirando las fuentes de entradas de mi blog y veo que una de ellas es twitter (El típico enlace t.co/******). Total, lo copio y lo pego en google y me aparece solamente una web que al abrirla se me descarga un .xml

No me he fiado así que lo he subido a Drive y lo he abierto desde ahí (toda precaución es poca  ;D)

He visto información de twitter de mucha gente (de todos los que dimos RT a un tuit que hablaba de esto http://t.co/hOMV1TnnZ9 ) (Con poner el "hOMV1TnnZ9" en Google ya la encuentras).

Además hay información de muchas webs (como la CNN).

El archivo está aquí alojado nodexlgraphgallery.org/Pages/GraphML.ashx?graphID=20007
Al abrir la URL automáticamente se te descarga. Parece una web de estadísticas pero... :s

Qué opinais?

Saludos;)
14  Comunicaciones / Redes / Busco info de como se conecta cliente a wifi WPA en: 12 Enero 2015, 14:11 pm
Pues eso gente, estoy con un par de ideas y busco el cómo se conecta una tarjeta de red a una red con WPA (el protocolo que se sigue).
Si alguno sabeis de algún libro en el que consultar o alguna web os lo agradecería mucho. Creo que no me he explicado bien pero... :-[

Algo tipo ésto (es un esquema de conexión tcp) pero de conexíon entre cliente y router con WPA


Saludos y gracias ;)
15  Programación / Java / No consigo apagar el pc desde Java... en: 26 Septiembre 2014, 12:56 pm
Buenas gente. Estoy intentando crear una interfaz que me permita temporizar un apagado, ya que mi hermana no se aclara con eso de escribir shutdown en una pantallita negra con letras blancas... xD

Pues os muestro el código que lo haría todo...

Código
  1. public void apagar() {
  2. try {
  3. if(radAnular.isEnabled()) {
  4. String []cmd = {"shutdown", "-a"};
  5. Runtime.getRuntime().exec(cmd);
  6. cambiaTexto("Apagado anulado");
  7. } else {
  8. String tiempo = "";
  9. String modo   = "";
  10. if(radApagar.isEnabled()) {
  11. modo = "-s";
  12. if(radHora.isEnabled()) {
  13.  
  14. } else {
  15.  
  16. }
  17. cambiaTexto("Apagado programado");
  18. } else if(radHibernar.isEnabled()) {
  19. modo = "-h";
  20. if(radHora.isEnabled()) {
  21.  
  22. } else {
  23.  
  24. }
  25. cambiaTexto("Hibernación programada");
  26.  
  27. } else {
  28. modo = "-r";
  29. if(radHora.isEnabled()) {
  30.  
  31. } else {
  32.  
  33. }
  34. cambiaTexto("Reinicio programado");
  35.  
  36. }
  37.  
  38. String [] cmd = {"shutdown", modo, "-f", "-t", ""+calcularTiempo()};
  39. Runtime.getRuntime().exec(cmd);
  40. }
  41.  
  42. } catch (IOException e ) {
  43. System.out.println("ERROR: "+e.toString());
  44. cambiaTexto("Ha ocurrido un error");
  45. }
  46. }
  47.  

El primer fallo que no comprendo es que siempre entra en el "anular" (esto lo se porque en la GUI me pone "APAGADO ANULADO").

Los que empiezan por rad son JRadioButton que los tengo agrupados así...
Código
  1. grupAccion = new ButtonGroup();
  2. grupAccion.add(radApagar);
  3. grupAccion.add(radHibernar);
  4. grupAccion.add(radReiniciar);
  5. grupAccion.add(radAnular);
  6.  
  7. grupCom = new ButtonGroup();
  8. grupCom.add(radHora);
  9. grupCom.add(radTiempo);
  10.  

Por defecto los toma todos como enabled y no como yo los marco en la GUI.

El segundo fallo es que no intenta apagarme el ordenador... He probado incluso poniendo al principio del try un

         Runtime.getRuntime().exec(new String[]{"shutdown", "-h", "-f", "-t", "0"});
y también con un

         Runtime.getRuntime().exec("shutdown -h -t 0");

Pero no hace nada...

Uso Windows 8.1 y estoy programando con Eclipse Luna.

Me reitero en que el error no es del controlador, ya que los "cambiaTexto" los hace.

Saludos y gracias ;)
16  Seguridad Informática / Seguridad / Recuperar metadatos borrados de una imagen en: 11 Septiembre 2014, 21:04 pm
Buenas gente. Necesito recuperar unos metadatos borrados de una imagen de Twitter, pero éste deja descargar las imágenes con los mismos borrados...
Algún consejo?

Saludos;)
17  Sistemas Operativos / Windows / No se qué es lo que consume RAM... en: 8 Septiembre 2014, 10:29 am
Ya empiezo a rallarme con mi pc... Son 8Gb de RAM. Anoche estuve descargando un par de archivos de 2 gb via uTorrent y un par de gb por descarga directa. Vi un capítulo de una serie de 20 min y cuando acabó tenía el uso de RAM rozando el 100%... Cerré todo lo que había abierto yo y no bajaba... Ahora lo enciendo y está igual. Aquí os dejo un par de capturas. Como vereis, según lo que me dicen los porcentajes, Chrome solo debe gastar más de un par de Gb el solito, pero si luego miramos los valores no se acerca ni por asomo...

Ya no se que más hacer  :-\



Saludos;)

EDIT: La suma de los porcentajes de Chrome hace un 45,8% (casi 4Gb...) Mientras que la suma de los valores hace un total de 278.396Kb (unos 272Mb, 0.26Gb)... ¿Cómo explico eso?
18  Foros Generales / Foro Libre / Alguien en las Fuerzas Armadas Españolas? en: 6 Septiembre 2014, 14:07 pm
Buenas gente... Llevo un tiempo planteandome entrar en las Fuerzas Armadas (Soy de España). Pero quisiera entrar tras acabar la carrera (Grado en Ingeniería Informática). Y me gustaría saber si alguien de dentro sabe como va eso... En teoría entro de oficial pero no se lo que se hace ni si voy a seguir haciendo algo relacionado con mis estudios... Si hay algún máster para entrar que me ayude, tampoco se si con el nuevo plan (grados) se entra igual que con los antiguos (licenciatura y diplomatura)....

Alguien que me guíe un poco? De todos modos tengo tiempo para pensarmelo... me quedan unos dos añitos para acabar xP

Saludos;)
19  Programación / Programación C/C++ / [Ayuda] Error Multiple definition of en C en: 5 Septiembre 2014, 22:08 pm
Buenas gente. Estoy haciendo ejercicios y hay un error al cual no le encuentro sentido... El error dice tal que así:

Citar
Description                                                Resource   Path                   Location   Type
first defined here                                        LinkedList.c   /Examenes/src   line 14   C/C++ Problem
first defined here                                        LinkedList.c   /Examenes/src   line 18   C/C++ Problem
first defined here                                        LinkedList.c   /Examenes/src   line 41   C/C++ Problem
multiple definition of `AnadirProceso'        LinkedList.c   /Examenes/src   line 18   C/C++ Problem
multiple definition of `Crear'                        LinkedList.c   /Examenes/src   line 14   C/C++ Problem
multiple definition of `MostrarLista'                LinkedList.c   /Examenes/src   line 41   C/C++ Problem


En un principio el fallo está claro. Pero por más que miro no veo ninguna redefinición. El código es de una Linked List Circular Os dejo aquí el header:

Código
  1. #ifndef LINKEDLIST_H_
  2. #define LINKEDLIST_H_
  3.  
  4. typedef struct Linked_List* LProc;
  5.  
  6. struct Linked_List {
  7. unsigned valor;
  8. LProc sig;
  9. LProc ejecucion;
  10.  
  11. };
  12. //Crea una lista de procesos vacía.
  13. void Crear (LProc *lista);
  14.  
  15. //Añade el proceso con identificador idproc a la lista de procesos disponibles para ejecución.
  16. //Este proceso se añade como nodo anterior al nodo al que apunta ejecución.
  17. void AnadirProceso (LProc *lista, int idproc);
  18.  
  19. //Muestra la lista de los procesos que están disponibles para la ejecución.
  20. void MostrarLista( LProc lista);
  21.  
  22. //Simula la ejecución del proceso apuntado por ejecución, eliminándolo de la lista de procesos.
  23. void EjecutarProceso(LProc *lista);
  24.  
  25.  
  26. #endif /* LINKEDLIST_H_*/
  27.  

Aquí el .c
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "LinkedList.h"
  4.  
  5.  
  6. void Crear (LProc *lista) {
  7. lista = NULL;
  8. }
  9.  
  10. void AnadirProceso (LProc *lista, int idproc) {
  11. LProc* aux = lista;
  12.  
  13. if(aux == NULL){
  14.  
  15. LProc nuevo = (LProc)malloc(sizeof(struct Linked_List));
  16. nuevo->valor = idproc;
  17. nuevo->sig   = nuevo;
  18. nuevo->ejecucion = nuevo;
  19. } else {
  20.  
  21. LProc nuevo = (LProc)malloc(sizeof(struct Linked_List));
  22. nuevo->valor = idproc;
  23. nuevo->sig   = (*lista)->ejecucion;
  24. nuevo->ejecucion = (*lista)->ejecucion;
  25.  
  26. while((*aux)->sig != *lista)
  27. (*aux) = (*aux)->sig; //Hacemos de aux el anterior a lista
  28.  
  29. (*aux)->sig = nuevo;
  30. }
  31. }
  32.  
  33. void MostrarLista( LProc lista) {
  34. LProc aux = lista;
  35. while(aux->sig!=lista) {
  36. printf("%d ", aux->valor);
  37. }
  38. fflush(stdout);
  39. }
  40.  

Y aquí el main:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "LinkedList.c"
  4.  
  5.  
  6.  
  7. int main () {
  8.  
  9. LProc list;
  10.  
  11. Crear(&list);
  12. MostrarLista(list);
  13.  
  14. AnadirProceso(&list, 3);
  15. AnadirProceso(&list, 8);
  16. AnadirProceso(&list, 1);
  17. AnadirProceso(&list, 14);
  18. AnadirProceso(&list, 0);
  19.  
  20. printf("Despues de introducir: 3, 8, 1, 14, 0 la lista es es \n");
  21.  
  22. MostrarLista(list);
  23. fflush(stdout);
  24. system("PAUSE");
  25.        return 0;
  26. }
  27.  

Espero que podais ayudarme. Uso Eclipse Luna con CDT y Mingw.

Muchas gracias ;)
20  Informática / Hardware / Buscando un nuevo teclado... en: 29 Agosto 2014, 13:29 pm
Buenas gente... Actualmente uso un teclado Genius de 7 pavos. Actualmente estoy buscando uno nuevo que me valga tanto para programar como para jugar y para mi día a día... He visto éste que parece bastante interesante... Teclado SteelSeries ZBoard

He hablado por el chat con la tienda y me han dicho que ese es de membrana pero el tío me recomienda uno mecánico... Qué me decís vosotros?
Me ha dicho... :
Citar
En general los Razer blackwidow van muy bien

Y los CMStorm en calidad/precio

Alguna opinión más?

Saludos;)

EDITO: Qué ca***brón... Normal que estén mejor.. Me ha pasado de uno de 25€ a unos de 70-120€ xDD
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines