Cita:
Iniciado por N0vat0
Código:
#include<stdio.h>
int main(int argc, char *argv[])
{
char c;
FILE *file_esc;
char *nombre;
struct struc{
int hora;
int min;
int medida;
} *dato;
dato=malloc(sizeof(struct struc));
nombre = argv[1];
file_esc=fopen(nombre, "a");
printf( "\n Introduca la hora:");
scanf( "%i", &(dato->hora));
printf( "\n Introduca el minuto:");
scanf( "%i", &(dato->min));
printf( "\n Introduca la medida:");
scanf( "%i", &(dato->medida));
fwrite(dato, sizeof(struct struc),1, file_esc);
fclose(file_esc);
exit(0);
}
1. Que significa
Código:
int main(int argc, char *argv[])
, porke se definen ai el int argc y el char *argv[] y no dentro de la funcion?¿
que al ejecutar el programa en modo texto (consola de comandos),este puede recibir datos como si fuera un comando del Ms-DOS:
Ej: Dir /p (/p es un parametro)
Ej: estructura 1 (donde estructuar es tu programa en C y 1 es el dato con el que trabaja)
Cita: 2.
Código:
dato=malloc(sizeof(struct struc));
. Que kiere decir esto?¿
Dato es un puntero y si se escribe sin * , es decir asi, se refiere al contenido de "dato", es decir, a la direcicon de memoria a la k apunta. Yo siempre habia visto eso d este modo: dato=&a; DOnde &a es la dire d memoria de la variable a, pero k significa pues esto: dato=malloc(sizeof(struct struc));. Que clase de direccion de memoria es malloc(sizeof(struct struc));?¿?
No se esta refiriendo a la posicion de la estructura en la memoria, sino a el tamaño en memoria de dicha estructura; mas claro si tienes una estructura llamada EJ2 de 156 Kb. dato tendria un espadio en memoria de 156 Kb.