hola rir3760.
bueno es que es precisamente el tema del operador "->" el que quiero entender.
ya estuve investigandoun poco sobre este operador pero no encuentro mcuha informacion lo unico que encuentr son ejemplos como este.
y bueno entendi que solo se puede usar el operador cuando se usan estructura con puntero y que es el aquivalente a poner (*dos).nombre pero intente hacer esto.
pero al ejecutarlo me dice violacion de segmento segun yo es lo mismo que en el ejemplo anterio pero no se por que me da error aun no termino de entender bien este operador.
********************************************************************************************************************
buen con respecto al siguiente codigo ya lo intente de varias formas manejado memoria dinamica arays, y nadamas con puro texto enviado por la funciones como fprintf, fputs, y fwrite y ninguna imprime el segunda linea.
bueno espero que me puedan ayudar.
bueno es que es precisamente el tema del operador "->" el que quiero entender.
ya estuve investigandoun poco sobre este operador pero no encuentro mcuha informacion lo unico que encuentr son ejemplos como este.
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
struct datos
{
char *nombre;
int edad;
};
int main()
{
struct datos uno, *dos;
uno.nombre = "hola amigo";
uno.edad = 12;
printf("%d", uno.edad);
printf("\n%s", uno.nombre);
dos = &uno;
dos->nombre = "sfa";
printf("\n%s", dos->nombre);
printf("\n%d", uno.edad);
printf("\n%s", uno.nombre);
return 0;
}
y bueno entendi que solo se puede usar el operador cuando se usan estructura con puntero y que es el aquivalente a poner (*dos).nombre pero intente hacer esto.
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
struct datos
{
char *nombre;
int edad;
};
struct da
{
char *nom;
int ed;
};
int main()
{
struct datos uno, *dos;
struct da *d;
uno.nombre = "hola amigo";
uno.edad = 12;
printf("%d", uno.edad);
printf("\n%s", uno.nombre);
d->nom = "sfa";
printf("\n%s", d->nom);
printf("\n%d", uno.edad);
printf("\n%s", uno.nombre);
return 0;
}
pero al ejecutarlo me dice violacion de segmento segun yo es lo mismo que en el ejemplo anterio pero no se por que me da error aun no termino de entender bien este operador.
********************************************************************************************************************
buen con respecto al siguiente codigo ya lo intente de varias formas manejado memoria dinamica arays, y nadamas con puro texto enviado por la funciones como fprintf, fputs, y fwrite y ninguna imprime el segunda linea.
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void uno();
void dos();
void tres();
void cuatro();
int main ()
{
//uno();
dos();
//tres();
//cuatro();
}
void uno ()
{
FILE *archivo;
int final;
char *cuno, *cdos;
cuno = (char *)calloc(sizeof(char), sizeof(char));
cdos = (char *)calloc(sizeof(char), sizeof(char));
cuno = realloc(cuno, 15);
cdos = realloc(cdos, 15);
strcpy(cuno, "hola amigo");
strcpy(cdos, "\nhola\n");
archivo = fopen("hola", "a");
if (archivo == NULL)
{
printf("error al crear el archivo\n");
exit(-1);
}
fwrite(cuno, sizeof(char), 15, archivo);
free(cuno);
cuno = NULL;
fflush(archivo);
fclose(archivo);
archivo = fopen("hola", "a");
fseek(archivo, 0L, SEEK_END);
fwrite(cdos, sizeof(char), 15, archivo);
fclose(archivo);
free(cdos);
cdos = NULL;
}
void dos ()
{
FILE *archivo;
int final;
char *cuno, *cdos;
cuno= "hola amigo";
cdos= "\nhola\n";
//printf("error");
archivo = fopen("hola", "a");
if (archivo == NULL)
{
printf("error al crear el archivo\n");
exit(-1);
}
fwrite(cuno, sizeof(char), 15, archivo);
fclose(archivo);
archivo = fopen("hola", "a");
fseek(archivo, 0L, SEEK_END);
fwrite(cdos, sizeof(char), 15, archivo);
fclose(archivo);
}
void tres()
{
FILE *archivo;
int final;
char cuno[15], cdos[15];
strcpy(cuno, "hola amigo");
strcpy(cdos, "\nhola\n");
archivo = fopen("hola", "a");
if (archivo == NULL)
{
printf("error al crear el archivo\n");
exit(-1);
}
fwrite(cuno, sizeof(char), 15, archivo);
fclose(archivo);
fflush(archivo);
archivo = fopen("hola", "a");
fseek(archivo, 0L, SEEK_END);
fwrite(cdos, sizeof(char), 15, archivo);
fclose(archivo);
}
void cuatro()
{
FILE *archivo;
int final;
archivo = fopen("hola", "a");
if (archivo == NULL)
{
printf("error al crear el archivo\n");
exit(-1);
}
fwrite("hola amigo", sizeof(char), 15, archivo);
fclose(archivo);
fflush(archivo);
archivo = fopen("hola", "a");
fseek(archivo, 0L, SEEK_END);
fwrite("como estas", sizeof(char), 15, archivo);
fclose(archivo);
}
bueno espero que me puedan ayudar.