Merhaba arkadaşlar. Şöyle bir soruyu çözerken hata alıyorum. Soruyu , hata aldığım kısmı ve aldığım hatayı paylaştım. Yardımcı olabilir misiniz? 100 adet 48-255 arası rastgele sayı üretilmesi sağlanacaktır. Üretilen sayılara ait ASCII kod küçük harf
karakterlerine karşılık geliyorsa char stack’ine gelmiyorsa int stack’ine atılmalıdır.
Başlangıçta stack’ler oluşturulurken stacklerin boyutu 10 olmalı , stack dolu ise ve yeni elaman eklenme ihtiyacı da varsa stack boyutu var olan boyutun iki katına çıkarılmalıdır.
Tüm işlem tamamlandığında her iki stack’e ait verilerin yer değiştirilmesi istenmektedir. (yer değiştirmeden
sonra tüm elemanların sırası korunmalıdır).
NOT 1: Yapılan stack işlemleri (push(),pop() vb) kendi yazdığınız fonksiyonlar kullanılarak
gercekleştirilecektir.
Yazdığım koddaki hata aldığım fonksiyon bloğundaki satırı işaretledim ;
int *intstack;
int *yeniintstack;
void push2(int item){
int i , j ;
if (isFull2()){
for(i=0; i<say_diger; i++){
if(i==boyut){
int *yeniintstack = (int*)malloc(sizeof(int)*boyut*2);
}
int j;
for(j=0 ; j<boyut ; j++){
int yeniintstack[j] = intstack[j]; /*Aldığım hata ---> main.c:44:18: error: variable-sized object may not be initialized int yeniintstack[j] = intstack[j]; */
}
boyut = boyut*2 ;
free(intstack) ;
intstack = yeniintstack ;
top2++ ;
intstack[top2] = item ;
printf("top2 ---> %i , ", top2);
printf("eklenen sayi---> %i , ascii kodu---> %c\n",item,item);
}
}
else{
top2++ ;
intstack[top2] = item ;
printf("top2 ---> %i , ", top2);
printf("eklenen sayi---> %i , ascii kodu---> %c\n",item,item);
}
printf("\n");
}