C veya C ++ 'da yerel nesneler genellikle yığın üzerinde tahsis edilir. Yığın üzerinde yığının kaldırabileceğinden daha büyük bir dizi ayırıyorsunuz, böylece bir yığın akışı elde ediyorsunuz .
Yığın üzerinde yerel olarak ayırmayın, bunun yerine başka bir yer kullanın. Bu, nesneyi global yaparak veya global öbek üzerinde tahsis ederek elde edilebilir . Başka bir derleme biriminden kullanmıyorsanız, global değişkenler iyidir. Bunun kazara meydana gelmediğinden emin olmak için, bir statik depolama tanımlayıcısı ekleyin, aksi takdirde yalnızca yığını kullanın.
Bu, yığının bir parçası olan BSS segmentinde tahsis edilecektir:
static int c[1000000];
int main()
{
cout << "done\n";
return 0;
}
Bu, aynı zamanda yığının bir parçası olan DATA segmentinde tahsis edilecektir:
int c[1000000] = {};
int main()
{
cout << "done\n";
return 0;
}
Bu, yığın içinde belirtilmemiş bir konuma tahsis edecektir:
int main()
{
int* c = new int[1000000];
cout << "done\n";
return 0;
}