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)



  Mostrar Mensajes
Páginas: [1] 2 3
1  Foros Generales / Foro Libre / ¿Que es un mantenedor? en: 25 Noviembre 2012, 22:04 pm
Buenas, desde hace un tiempo estuve buscando un poco para realizar mi 1º práctica, pero en una de ellas (al parecer) como requisito necesitaban algún programador para hacer un Mantenedor.

Y ahí mi pregunta, que es exactamente un mantenedor?? Google me da todo tipo de resultado, pero nada orientado a algún tipo de software ni nada.

Alguien sabe q es?
2  Sistemas Operativos / Windows / Particionado de Memoria Principal en Windows en: 25 Noviembre 2012, 18:58 pm
Buenas, abro este hilo porque se me está siendo de dificultad encontrar material que trate de Particionado de la Memoria Principal en Windows.

Al googlear no he podido encontrar nada, siendo que hay poco material que explique como funciona el OS siendo un sistema operativo cerrado...

Alguien sabría donde pueda encontrar algo de información al respecto??
3  Programación / Programación C/C++ / Re: Duda, problema de asignacion con Malloc en: 25 Noviembre 2012, 00:57 am
creo que ya encontré la pifia, entonces era el sizeof(str.mensaje[ i ]) ? quizás ahi agarre sentido, no se refiere al tamaño del vector en sí, si no as bien del puntero, tambien intenté cambiarlo por strlen(str.mensaje[ i ]), pero también se cae, nada mas queda poner el numero en duro 2048 xd

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "Lectura.h"
  4. #include "estructura.h"
  5.  
  6. extern struct input str;
  7.  
  8. void* lectura(void* inputFile){
  9.  
  10. char* linea = (char*)inputFile;
  11. FILE* archivo;
  12. char dir[20];
  13.  
  14. strcpy(dir, "textos/");
  15. strcat(dir, linea);
  16.  
  17. printf("\nDireccion del Texto es: /%s\n\n", dir);
  18.  
  19. int i;
  20. if((archivo = fopen(dir, "r")) != NULL){
  21. for(i = 0; !feof(archivo); i++){
  22. fgets(str.mensaje[i], sizeof(str.mensaje[i]), archivo);
  23. }
  24. }
  25. else{
  26. perror("error al abrir el fichero\n");
  27. return;
  28. }
  29. fclose(archivo);
  30. }

Una duda, entonces si quiero usar cada vector para modificarlo luego... como le hago referencia?
4  Programación / Programación C/C++ / Re: Duda, problema de asignacion con Malloc en: 25 Noviembre 2012, 00:15 am
Lo he probado y solo puede ingresar textos de tamaño 8 en cada vector, por eso intenté imprimirel tamaño de cada vector y justamente indicaba 8, pero no cuadra, de donde salio ese 8 cuando le estoy especificando 2048. No se donde es que no cuadra
5  Programación / Programación C/C++ / Duda, problema de asignacion con Malloc en: 24 Noviembre 2012, 23:56 pm
Buenas, otra duda sencilla que no puedo responder, acá intentando asignar memoria a un arreglo de char y al parecer lo asigna mal, en que falla??

Tengo definida en una cabecera esta estructura que contiene un char
Código
  1. #ifndef ESTRUCTURA_H
  2. #define ESTRUCTURA_H
  3.  
  4. struct input{
  5. int prueba;
  6. char** mensaje; //habria que almacenarlo con malloc
  7. }str;
  8.  
  9. #endif

main.c
Código
  1. int i;
  2. str.mensaje = (char**)malloc(sizeof(char*)*72);
  3. for(i = 0; i<72; i++){ str.mensaje[i] = (char*)malloc(sizeof(char)*2048); }
  4.  
  5. printf("%d\n", sizeof(str.mensaje[2]));
Se supone que debería asignarse un tamaño 2048 para cada vector, pero en lugar de ello me imprime 8.

No se a que se debe este problema, alguien me podría aclarar en que me estoy equivocando??
6  Programación / Programación C/C++ / Re: Castear estructura en un archivo.c distinto al main en: 20 Noviembre 2012, 19:47 pm
Gracias, ahora que lo intento (como siempre) me esta tirando una pifia

Código
  1. struct str{
  2. int numLinea;
  3. char* inputFile;
  4. };
  5.  
  6. struct str Estructura = { 0, "Hola" };
  7.  
  8. void* getStruct(){
  9. Estructura.numLinea++;
  10. return (void*) Estructura;
  11. }

con
Código
  1. gcc -c Input.c
me tira este error
Código
  1. Input.c: En la funcion 'getStruc':
  2. Input.c:10:2: error: no se puede convertir a un tipo puntero
y eso que aun no implemento la cabecera...
7  Programación / Programación C/C++ / Castear estructura en un archivo.c distinto al main en: 19 Noviembre 2012, 21:36 pm
Buenas, estoy haciendo una tarea y de momento me topé en una duda que no se como resolver.

Necesito ingresar un tipo de estructura como parámetro pero con (void*) a un archivo.c distinto al main.c

Esto es lo que tengo definido en el main.c:
Código
  1. struct str{
  2. int numLinea;
  3. char* inputFile;
  4. } Estructura;

y esto es lo que recibo en lectura.c:
Código
  1. char** leer(void* Estructura){
  2. str* Parquete = (str*) Estructura;

Al compilar, me da error, la estructura str está definido en el main.c, pero no en lectura.c

PD: Necesito hacer uso de void*, ya que (tengo entendido que) con pthread funciona así.

¿Tengo que redefinir la estructura en lectura.c? no importa si sea redundante??
8  Programación / Programación C/C++ / Comando terminal para compilar: cabecera dentro de otra [C en Linux] en: 22 Octubre 2012, 15:51 pm
Buenas, estoy haciendo un programita, el cual, un archivo.c ajeno tengo definido la lectura a un fichero de texto y lo ingresa a un vector dinámico, por lo que mi archivo lectura.c tiene:

Código
  1. #include "Lectura.h"
  2. #include "vectorDinamico.h"

Ahí es donde está la dificultad, ya que al definir el archivo cabecera de Lectura.h, tengo esto, ya que no reconoce el puntero vector_t:

Código
  1. #ifndef LECTURA_H
  2. #define LECTURA_H
  3. #include "vectorDinamico.h"
  4.  
  5. void leer(char*, vector_t*, int);
  6.  
  7. #endif

¿¿Cómo tendría que escribirse el Makefile de tal forma que compile bien??

¿¿o cuál sería el comando para compilar el programa en este caso??
9  Programación / Programación C/C++ / Re: insertar palabra por palabra a una matriz en: 20 Octubre 2012, 17:16 pm
Gracias, no sabía que había que reservar también cada uno de los vectores, pensaba que con tener la matriz reservada ya estaba para llegar y escribir en ella.

Pero sin embargo el problema insiste, de hecho, luego de declarar la matriz con sus vectores, verifico su tamaño con sizeof(matriz), me retorna 8, por lo que el String linea tiene tamaño 8, le puse tamaño 1024, ya que si leo un párrafo, este no tiene salto de lineas, es una linea continua hasta que llega a un punto aparte.

Código
  1. char** matriz = (char**)malloc(sizeof(char*)*numPal);
  2. for (j=0; j<numPal; j++) matriz[j] = (char*)malloc(15*sizeof(char));

Código
  1. void leer(char *archivoTexto, char** matriz, int palabras){
  2.  
  3. FILE* archivo;
  4. int i = 1;
  5. char linea [1024];
  6.  
  7. if((archivo = fopen(archivoTexto, "r")) == NULL){
  8. perror("error al abrir el fichero\n");
  9. }
  10. else{
  11. while(fgets(linea, sizeof(linea), archivo)){
  12. matriz[0] = strtok(linea, " ");
  13. printf("%s ", matriz[0]);
  14. for( ;(matriz[i] = strtok( NULL, " ")) != NULL && i < palabras; i++){
  15. printf("%s ", matriz[i]);
  16. }
  17. }
  18. }
  19. printf("\n\n");
  20. }

Por cierto... soy nuevo en C y aun no capto miles de cosas, cuando me mostraste como asignarle memoria a matriz con malloc "(char**)malloc(NumPal*sizeof(char*))", no le estoy asignando el tamaño de memoria NumPal a toda la matriz? o le estoy asignando ese tamaño a cada vector?

PD2: Apesar del cambio, sizeof(matriz) me sigue arrojando tamaño 8, pero sin embargo, la matriz almacena todo el texto, que es lo que me está devolviendo sizeof??
10  Programación / Programación C/C++ / insertar palabra por palabra a una matriz en: 20 Octubre 2012, 04:47 am
Buenas, quería leer desde un archivo y almacenar palabra por palabra en una matriz, por lo que cada uno de los vectores almacenaré una palabra.

He intentado hacerlo, pero sin éxito, en que me estaré confundiendo??

Código
  1. char** matriz = (char**)malloc(sizeof(char*)*512);
  2. leer("texto.txt", matriz, 10);

Código
  1. #include <stdio.h>
  2.  
  3. void leer(char *archivoTexto, char** matriz, int palabras){
  4.  
  5. FILE* archivo;
  6. int i = 1;
  7. char linea [sizeof(matriz)];
  8.  
  9. if((archivo = fopen(archivoTexto, "r")) == NULL){
  10. perror("error al abrir el fichero texto.txt\n");
  11. }
  12. else{
  13. while(fgets(linea, sizeof(linea), archivo)){
  14. matriz[0] = strtok(linea, " ");
  15. printf("%s ", matriz[0]);
  16. for( ;(matriz[i] = strtok( NULL, " ")) != NULL && i < palabras; i++){
  17. printf("%s ", matriz[i]);
  18. }
  19. }
  20. }
  21. }
PD:
1º argumento: nombre del archivo que quiero leer
2º argumento: la matriz donde quiero insertar las palabras (1 en cada vector)
3º argumento: las cantidad de palabras que quiero insertar a la matriz

Pero justo cuando se imprime las palabras desde la matriz, lo único que me imprime es (null)

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