hola, estoy tratando de almacenar un vector de caracteres que proviene de un fichero, en una lista, llevo esto del codigo pero no entiendo el motivo porque el programa se cae.
creo que es un error en la llamada a la función o en la asignacion de NuevoNodo.
Gracias.
creo que es un error en la llamada a la función o en la asignacion de NuevoNodo.
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _nodo{
char caracter;
int repeticion;
struct _nodo *sig;
}_Nodo;
typedef _Nodo *_pNodo;
_pNodo CrearLista(char caracter);
_pNodo Insertar(char caracter, _pNodo ListaInicial);
int main()
{
struct _pNodo* apunta =NULL;
struct _pNodo* aux2=NULL;
struct _pNodo* inicio=NULL;
_pNodo NuevoNodo;
char a,aux;
int cont=0,j,i,k;
FILE *archivo;
archivo=fopen("texto.txt","r");
if (archivo == NULL)
{
printf("\nError de apertura del archivo. \n\n");
}
else
{
printf("\nEl contenido del archivo de prueba es: \n\n");
while((a = fgetc(archivo)) != EOF)
{
cont++;
}
char v[cont];
rewind(archivo);
for(i = 0; !feof(archivo);i++)
{
aux='0';
for(j=0;aux!=EOF;j++)
{
aux= fgetc(archivo);
if(aux!=EOF)
{
v[j] = aux;
}
}
for(i=0;i<=cont;i++)
{
Insertar(v[i],NuevoNodo);
}
}
fclose(archivo);
}
system("pause");
return 0;
}
// printf("asd");
_pNodo CrearLista(char caracter)
{
_pNodo Lista;
Lista = (_pNodo) malloc (sizeof(_Nodo));
Lista->caracter = caracter;
Lista->sig = NULL;
return Lista;
}
_pNodo Insertar(char caracter, _pNodo ListaInicial)
{
_pNodo NuevoNodo;
_pNodo Auxiliar = ListaInicial;
NuevoNodo = malloc(sizeof(_Nodo));
NuevoNodo->caracter = caracter;
NuevoNodo->sig = NULL;
if (ListaInicial->sig == NULL)
{
ListaInicial->sig = NuevoNodo;
}
else
{
while(Auxiliar->sig != NULL)
{
Auxiliar = Auxiliar->sig;
}
Auxiliar->sig = NuevoNodo;
}
return NuevoNodo;
}
Gracias.