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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: [1]
1  Informática / Electrónica / Re: Introduccion a la programacion de PICS en lenguaje C (CCS) en: 19 Septiembre 2010, 16:57 pm
muy buen tutorial, estaba atascado con ésto de los pics per o en una tarde ya me he aclarado de cómo iba, muchisimas gracias!!!
2  Programación / Programación C/C++ / Re: Ayuda asignacion de memoria dinámica palabras en c en: 19 Mayo 2010, 08:22 am
@nicolasblues86:
tienes razón con lo de calloc, el orden está mal puesto, pero si no supiera de antemano las palabras que voy a meter se podría usar la función  realloc para que fuera modificando el tamaño de vect.
EDIT: tal que asi


Código:
vect=(char **)calloc(1,sizeof(char*));
 do {
  printf("palabra: ");
  __fpurge(stdin);
  scanf("%s" ,aux);
  if(strcmp(aux,"fin")
    {
     vect[i]=(char*)malloc(sizeof(char)*(strlen(aux)+1));
     strcpy(vect[i],aux);
     n++;
     i++;
     vect=(char**)realloc(vect,sizeof(char*)*(n+1));
    }
}while(strcmp(aux,"fin"));

3  Programación / Programación C/C++ / Re: Ayuda asignacion de memoria dinámica palabras en c en: 18 Mayo 2010, 18:30 pm
y también tendría que comprobar si la reserva de memoria se hace bien y no devuelve NULL, pero era solo para practicar ese tema un poco, no quiero hacer un programa serio serio.
de todas maneras yo suelo usar scanf, pero uso siempre antes el __fpurge(stdin), para no coger cosas raras.
4  Programación / Programación C/C++ / Re: Ayuda asignacion de memoria dinámica palabras en c en: 18 Mayo 2010, 17:53 pm
Así esta muy bien , recuerda que la variable auxiliar tambien podria se dinamica
Código
  1. char *aux = (char *) malloc(sizeof(char)*20);
  2.  
al final solo tendrías que liberar toda la memoria que pediste ... ;)

jop eso de poner la aux con memoria dinámica ya es ajustar mucho eh? jaja pero si que tienes razón, muchisimas gracias por la ayuda, de verdad, estaba un poco perdido :)
5  Programación / Programación C/C++ / Re: Ayuda asignacion de memoria dinámica palabras en c en: 18 Mayo 2010, 17:39 pm
No te parece que estás "mal gastando " memoria ?  que sucede cuando la palabra ingresada no es de 50 caracteres , en todo caso 50 caracteres ya me suena a frase , quedaría mejor si reservas la memoria necesaria para el tamaño especifico de cada palabra ... :-\


hmm tienes razón, quedaría algo así, pero no se me ocurre otra manera de hacerlo que poner una variable auxiliar de 20 caracteres :S
EDIT: al usar la funcion strlen lo se incluye el terminador de la cadena, por eso pongo strlen(aux)+1

Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
int n,i;
char **vect,aux[20];
printf("Nº palabras: ");
scanf("%d" ,&n);

vect=(char **)calloc(sizeof(char*),n);
for(i=0;i<n;i++)
  {
  printf("palabra: ");
  scanf("%s" ,aux);
  vect[i]=(char*)malloc(sizeof(char)*(strlen(aux)+1));
  strcpy(vect[i],aux);
  }

for(i=0;i<n;i++)
printf("%s\n", vect[i]);
}
6  Programación / Programación C/C++ / Re: Ayuda asignacion de memoria dinámica palabras en c en: 18 Mayo 2010, 16:41 pm
Ahi estas reservando memoria para una sola palabra de n caracteres  ;)
ala es verdad!!!
vale, me pongo a ello, muchas gracias

EI: juntando mensajes.

arreglado, por si alguien le sirve de ayuda aqui lo dejo
Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
int n,i;
char **vect;
printf("Nº palabras: ");
scanf("%d" ,&n);

vect=(char **)calloc(sizeof(char*),n);
for(i=0;i<n;i++)
vect[i]=(char*)malloc(sizeof(char)*50);

for(i=0;i<n;i++)
  {
  printf("palabra: ");
  scanf("%s" ,vect[i]);
  }
  for(i=0;i<n;i++)
  printf("%s\n", vect[i]);
}
7  Programación / Programación C/C++ / Ayuda asignacion de memoria dinámica palabras en c en: 18 Mayo 2010, 16:30 pm
buenas, tengo un problemilla, quiero hacer un programa que acepte un numero indeterminado de palabras y las imprima por pantalla(esto último solo para ver si funciona), había pensado algo así pero no va, una ayudita por favor

Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

main()
{
int n,i;
char *vect;                       
printf("Nº palabras: ");
scanf("%d" ,&n);

vect=(char *)calloc(sizeof(char),n);
for(i=0;i<n;i++)
  {
  printf("palabra: ");
  scanf("%s" ,vect[i]);
  }
for(i=0;i<n;i++)
printf("%s\n", vect[i]);
}


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