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ı?