Buenas a todos, queria saber mas que nada cuanta informacion en bytes puede guardar un espacio en memoria creada al usar un nuevo nodo con new
, yo se que puede almacenarse un registro grandecito y bueno que pasaria si meto registros enormes mas que nada saber cuandos bytes es un espacio en memoria :huh:
Depende de cuantos datos tenga la estructura y de que tipo. Por cada tipo ya hay un tamaño preestablecido. por ejemplo un entero ocupa en memoria 4 byte y un long int 8 byte, sin importar de cual numero sea y una cadena dependiendo de cuanto caracteres la definiste, cada caracter ocupa 1 byte. suerte!
Si tengo esta estructura cuantos bytes seria por cada nodo?
const int MAX=32;
typedef char tcad[MAX];
typedef struct tfecha{
int dia;
int mes;
int año;
};
typedef struct tdomicilio{
tcad calle;
int numero;
tcad barrio;
};
typedef struct tvehiculo{
tcad marca;
tcad patente;
};
typedef struct thorario{
tcad horaEntrada;
tcad horaSalida;
};
typedef struct tchofer{
int legajo;
tcad nombre;
tcad apellido;
int DNI;
tfecha fecha_nac;
tdomicilio domicilio;
tvehiculo coche;
thorario extras;
int horas_extras;
};
typedef struct tnodo *pnodo;
typedef struct tnodo{
tchofer chofer;
pnodo sig;
};
La estructura tfecha ocuparia 3 byte, la estrucutra tcad ocupa 32byte, tdomicilio 65 byte, thorario y tvehiculo 64 byte y tchofer 263 byte
Dáselo a sizeof y te lo dirá:
printf("%lu", sizeof(estructura));
Puede que te encuentres con sorpresas pues C intenta acomodar los datos de las estructuras para que al procesador le sea más fácil acceder a los miembros.