2 Elemanlı Diziye Daha Fazla Eleman Ekleniyor

metinsama

Kilopat
Katılım
7 Aralık 2014
Mesajlar
810
Çözümler
5
Arkadaşlar C'de yığın konusunu çalışıyordum. Hoca dizinin sınırını aşınca yeni bir dizi tanımlayıp ona aktarıyordu fakat benim kodumda dizinin sınırını aşmasına rağmen gayet güzel çalışıyor. Bunun nedeni nedir acaba?
[CODE lang="c" highlight="3,20-22,11-15"]#include <stdio.h>
#include <stdlib.h>
int dizi[2];
int tepe=0;
int boyut=2;
void push(int);
int pop();
void bastir();
void main(void)
{
push(10);
push(20);
push(30);
push(40);
bastir();
printf("popped %d \n",pop());
printf("popped %d \n",pop());

}
void push(int a)
{
dizi[tepe++]=a;
}
int pop()
{
return dizi[--tepe];
}
void bastir()
{
for (size_t i = 0; i < tepe; i++)
{
printf("%d. eleman: %d\n",i,dizi);
}

}[/CODE]
 
Son düzenleyen: Moderatör:
Bu duruma "buffer overflow" denmekte. O diziye 100 tane değer yüklediğimiz zaman MSVC'de ilk 5 elemanda değişik değerler çıktıktan sonra normale dönerken, GCC'de direkt olarak yüklüyor.
 

Yeni konular

Geri
Yukarı