Código
#include <stdio.h> int main(int argc, char *argv[]) { int array[100]; printf("%i", sizeof(array)); getch(); return 0; }
Es decir independientemente de que el array estático este lleno o no, siempre va ocupar 400 bytes. Ahora bien, supongo que para eso existe la memoria dinámica. Si quiere tener un array que puede tener como máximo 100 elementos, lo puedo hacer con este código:
Código
int *array = (int*)malloc(400);
Sin embargo, si quiero averiguar su tamaño en memoria siempre me va a dar 4 bytes, ya que un puntero de tipo int siempre va a ocupar 4 bytes. Entonces, ¿cómo sé que esos 400 bytes solo están reservados y no se están ocupando?
Agradecería una respuesta clara y bien explicada, gracias.