No encuentro el error en este programa - Structs + Punteros

Iniciado por palacio29, 18 Mayo 2019, 20:04 PM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct s_texto
{
    char*txt;
    unsigned int longitud;

};
typedef struct s_texto t_texto;

t_texto* CARGARTEXTO();
char* CARGASTRING();
void escribirarch(const char* nomArch,t_texto*);

int main()
{
escribirarch("frases_con_longitud.csv",CARGARTEXTO());


    return 0;
}
t_texto* CARGARTEXTO()
{

    t_texto kiko;
    kiko.txt=CARGASTRING();
    printf("\n%s\n",kiko.txt);
    return &kiko;
}
char*CARGASTRING()
{

    char*texto=NULL;
    char letra;
    int i=0;
    texto=malloc(sizeof(char));
    letra=getche();
    while(letra!='\r')
    {
        *(texto+i)=letra;
        i++;
        texto=realloc(texto,((i+1)*sizeof(char)));
        letra=getche();
    }
    *(texto+i)='\0';
    return texto;
}

void escribirarch(const char* nomArch,t_texto* kiko)
{

    FILE*arch=NULL;
    printf("Llegue");
    printf("%s",kiko.txt);
    arch=fopen(nomArch,"w");
    fprintf(arch,"%d",5);
    printf("%d",longitud(kiko));
    fclose(arch);
}


Lo que tengo que hacer es cargar la estructura con un texto y la longitud de un texto y eso mandarlo a un archivo de texto
Dentro de la estructura hay un puntero.
Mi problema es en la linea 55. No se como hacer que imprima la frase.
Al intentar mandarlo por archivo, no manda nada...justamente porque hay intentar llamar a la frase para que se ponga ahi, me da error.

lordluisiv

Oye puedes guiarte de aqui

es un sistemita de guardado que hice, ahi puede revisar como escribir en un archivo y sacar esa informacion, y editarla.
https://foro.elhacker.net/programacion_cc/solucion_eliminareditar_contenido_de_un_fichero-t495331.0.html


MAFUS

Cómo usas conio pues no lo puedo probar, y ahora mismo me da pereza cambiar código, pero ya que kiko es un puntero deberías usar el operador -> en vez de . para acceder a su miembro.