Bilgisayarımda malloc fonksiyonu ile oluşturulabilecek maksimum boyuttaki diziyi bulmam gerekiyor. Bunun için aşağıdaki kodu kullandım
int main(){
     int *dizi=(int *)malloc(sizeof(int));
     int i=1,x=1,sayac;
     while(x!=0){
          dizi=(int *)realloc(dizi,i*sizeof(int));
          sayac++;
          if(dizi[sayac]==NULL){
               x=0;
          }
     }
     printf("%d",sayac);
     free(dizi);
}
Burada artık yer ayrılamayınca sayac yinede 1 artacak ve dizi[sayac] NULL karakterini gösterecek. DAha sonra x 0 olacak ve while sonlanacak.
Fakat program calısınca 300 gibi absürt bir rakam veriyor. Kendim malloc ile 1 milyona yakın elemanlı dizi oluşturabiliyorum ama bana kesin sayı lazım.
Yardım edebilecek var mı?
  

