#akış #TeknoYardım
Arkadaşlar c çalışıyorum, aynı kod linux mint üzerinde derlenip düzgün çalışıyor, windows 10'da derliyorum, run time error veriyor pointerlı kısmı ekrana yazdırırken. Sizce sorun ne olabilir? Hiçbir fikrim yok, internette aradım hiçbir sonuç bulamadım..
İki işletim sisteminde de codeblocks kullanıyorum ide olarak.
kod da şu:
Ekleme = site kodun bir kısmını yemiş, bu adrese yükledim http://codepad.org/XFaP9J10
include stdio.h
include string.h
// cumlenin en uzun kelimesini bulup ekrana yazacak
void bul(char *x)
{ int i,j,kntrl=0;
char *uzun;
for (i=0 ; i kntrl)
{
uzun = x+i-j;
kntrl = j;
}
j=0;
}
else
j++;
}
printf("Cumlenin en uzun kelimesi = ");
for ( i=0 ; i<55 ; i++)
{
printf("%s",*(uzun+i));
if( *(uzun+1+i) == ' ')
break;
}
}
int main()
{
char saka[99]={"abc defgh ij klmnoprstu"};
char*pt;
printf("Cumleni gir = \n"); gets(saka);
pt = saka;
bul(pt);
return 0; }
#Yazılım #programlama #LinuxMint #codeblocks

Ekran görüntüsü almamıştım ama fotoğraflarını çekmiştim
dosya uzantısı cpp olması lazım galiba
direk aynı dosyadan çalıştırdım ilk başta, bu hatayı verince baştan yazdım belki bir karakter sorun çıkarmıştır falan diye, .c de .cpp de aynı hatayı veriyor malesef
bide kodu eksik atmışınız if bloğu yok
site o hale sokuyor, buraya yapıştırdım http://codepad.org/YLPc4Yfa
Hangi Ide ve derleyici ney ?
yazdım hocam codeblcoks kullanıyorum ikisinde de, gnu gcc derleyisini kullanıyor sanırım program kendi içinde. ben hiçbir ayar değiştirmedim ikisinde de.
ben yapamadım aslında çalışmam lazım da sonra artık haftaya çalışırım. haftaya da final labı var
çok saçma bir sorun, emin olamıyorum kodda hata var da linux mint'te şansa mı çalıştı, yoksa windows yüzünden mi alıyorum bu hatayı.
@rezz fazla ram filan kullanıyor herhalde işletim sistemi fazla ram gitmesin diye engelliyor olabilir
@at benim bildiğim kod ilk derlenirken gereken belleği kendisine ayırıyor, o sebepten verse hatayı en başta vermesi gerekmez mi?
@rezz o ayrı malloc ile filan ayırırsa sonradan ayırıyor
@at printf("%c",*(uzun)); satırı nerde olursa orada hata veriyor, bu tek satırlık tek karakter ekrana bastırması gereken kod çok ram ya da işlemci yemez hocam bence. ben bir şeyleri yanlış biliyorum o kesin, ama neyi, onu bilmiyorum
linuxde hem gcc ile hem qt creator ile denedim. build ediyor fakat cümleyi girdikten sonra program kapanıyor. kodlarda sorun var gibi görünüyor.
Allah allah, bende çalışıyordu fotoğrafını bile çektim. Bilgisayarı yeniden başlatım tekrar deneyeyim bi
%s string değer alıyor ama orada int değer belirtilmiş. %s yerine %i yazınca program derlendi.
fakat bir çok warning var çıktıda.
@cemkoc %c olacaktı orası zaten, öyle derleniyor. ve evet 3 tane warning var
@cemkoc sanırım o warningler gets ile alakalı, yani bende öyle diyor, dangerousmış gets komutu kullanılmamalıymış
evet doğru c olacak i değişkenine bakarak i yazmıştım. şu dikkat kısmını da bırakayım işine yarar belki.
Hocam okuldaki laboratuarda codeblocks kullanılıyor ama, benim sorunumu çözse bile bu, okulda ne yapacağım
@john_doe @cemkoc bir karakter hatası varmış evet, fakat ben windowsta düzgün halini deniyordum zaten çalışmıyor. Ve kod şu anda linux mint üzerindeki codeblocks'ta derleniyor.
bir karakteri değişmiş, windows'ta hata veren fakat linux mint'te çalışan kod = http://codepad.org/XFaP9J10
tam da yazmıştım bunu 🙂
'gcc' is not recognized as an internal or external command, operable program or batch file. diyor cmd, ama bu ille de gerekli mi?
"bul" fonksiyonunun içerisinde j değişkenine başlangıç değeri olarak 0 verin. Linux üzerinde başlangıç değeri varsayılan olarak 0 iken Windows üzerinde rastgele bir değer atanıyor. Kodunuz üzerinde bu değişikliği yapıp derlediğimde sorunsuz çalıştı.
offff hocam çok teşekkürler, kafayı yedim kaç saattir, hiç de aklıma gelmedi j'nin ilk değerinin olmadığı. çok sağolun