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!!!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
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"));
Cita de: Didacso en 18 Mayo 2010, 17:49 PM
Así esta muy bien , recuerda que la variable auxiliar tambien podria se dinamica
char *aux = (char *) malloc(sizeof(char)*20);
al final solo tendrías que liberar toda la memoria que pediste ...
Cita de: Didacso en 18 Mayo 2010, 17:17 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 ...
#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]);
}
Cita de: Eternal Idol en 18 Mayo 2010, 16:38 PMala es verdad!!!
Ahi estas reservando memoria para una sola palabra de n caracteres
#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]);
}
#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]);
}