La verdad no se cual es el tamaño pero puedes hacer esto como te dijo LearningSpanishProgrammer hacer un while hasta que malloc() te devuelva NULL:
Yo probé esto y la verdad nunca salio del ciclo así que el tamaño debe ser MUY grande.
Código
#include <stdio.h> #include <stdlib.h> int main(){ char * arreglo; unsigned long long i = 1; do{ i++; }while(arreglo != NULL); return 0; }
Yo probé esto y la verdad nunca salio del ciclo así que el tamaño debe ser MUY grande.
Nunca sale del ciclo por que siempre liberas la memoria.
Calcular el tamaño maximo de un array es medio estupido, nunca va a ser el mismo por una razon principal, el sistema rara vez va a tener la misma cantidad exacta de bytes libres, en todo caso en windows x86 (ni idea de linux) cuando llegues al limite de 2GB (>2GB si usas LAA) por proceso te empezara a retornar NULL malloc.
En resumen, el tamaño maximo de un array/arreglo en C/C++ y diria que la gran mayoria de lenguajes de programacion esta limitado por la cantidad de memoria que tienes libre en el PC.