Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

c++ kodu calismiyor, neden olabilir?


Öne çıkan mesajlar

Mesaj tarihi:
#include
#include
using namespace std;

int main()
{
long la[10];
for(int i=0; la[i]!=0; i++) { cout << la[i] << " " << &la[i] << endl;}
return 0;
}

burda 11. elemana yani escape char 0'a gelince programi bitirmesi gerekmez mi?
Hatta stroustrup'un kitabinda ornek olarak vermis ama vc++ da calismiyor.
neden olabilir?[hline]W.A.N.D.E.R.E.R.: Wireless Artificial Neohuman Designed for Efficient Repair and Efficient Reasoning

[Bu mesaj wanderer1985 tarafından 19 August 2003 21:33 tarihinde değiştirilmiştir]
Mesaj tarihi:
i integer ını tanıtmamıssın ...
bıde hata measajını yazarsan sevınırım ...[hline]* tells "drizzt" wıth fear ...
* tells "do'urden" wıth the head of man who said 'drizzt' ...
*sevdaki ,onu egilmeden tasıyabilene yakısır ...
*kazanmak neye yararki , kaybeden oldugunda ...
Mesaj tarihi:
hmm, kitaptaki ornek char arrayi imis. acaba sadece char arraylerinde mi escape char var?[hline]W.A.N.D.E.R.E.R.: Wireless Artificial Neohuman Designed for Efficient Repair and Efficient Reasoning


Mesaj tarihi:
bir de, i integeri for dongusunun icinde tanimli?
hata mesajini compiler vermiyor, progu calistirinca klasik windoze un hatasi olusuyor.[hline]W.A.N.D.E.R.E.R.: Wireless Artificial Neohuman Designed for Efficient Repair and Efficient Reasoning


Mesaj tarihi:
Wanderer o for loop'dan çıkması için la array'inin o 11 (0'dan 10'a kadar olan) elemanından herhangibirinin 0 olması lazım değil ise çıkmaz. Sanıyorum la[11]'e değer atanmadığı için 0 olur diye düşündün. Ama öyle değil.[hline]In God I Trust
For Rest I Just Test
Mesaj tarihi:
char la[10] 'u initialize etmedigin icin hata veriyor, daha dogrusu la 'nin baslangic byteindan itibaren tek tek degeri 0 olan byte ariyor memoryde, la 'nin ilk 10 byteinda bulamayinca la[11] la[12] .. diye devam ediyor aramaya, o zaman da segmentation faulta sebep verir eninde sonunda, okumamasi gereken bi yeri okumaya kalkinca.

char la[10]; dedigin zaman, memoryden 10 bytelik (10 char degeri tutabilecek daha dogrusu) bi alan ayriliyor, ama degeri bosaltilmiyor, o anda o memory adresinde ne varsa degeri o.

stringler 0 nolu byte ile biterler, bittigi oyle anlasilir yani. mesela "wastiee" bir string ise, 7 karakter degil, 8 karakter vardir, 8. karakterin degeri stringin bittigini gosteren 0 nolu bytedir ( '', NULL, 0)[hline]wastiee
Mesaj tarihi:
peki char arrayleri degil de baska seylerin arrayleri ne ile biter? herhangi bir ozel character var mi? yoksa bittigi nasil anlasiliyor?[hline]W.A.N.D.E.R.E.R.: Wireless Artificial Neohuman Designed for Efficient Repair and Efficient Reasoning


Mesaj tarihi:
char arrayleri de ile bitmez normalde.

soyle, eger bu bi C string 'i ise, ile biter C stringleri, ve de char arrayleridir kendileri.

ama sen char buffer[10]; diyip, bunu string olarak degil de, binary bi buffer gibi kullanabilirsin, 10 bytelik bir memory alani olarak yani, herhangi bi bitis karakterine bakmadan, buffer[0] ... buffer[9] araligini kullanarak (buffer[10], buffer[11] falan dersen, tanimladigin memorynin disina cikmis olursun, segmentation fault verir buyuk ihtimalle, vermese bile baya bi dert acar basina)

ama mesela

printf("%s", s);

dedigin zaman, s, bir C stringdir, char s[10]; gibi tanimlanip bittigi yerde de '' karakteri vardir.[hline]wastiee
Mesaj tarihi:
şimdi arraylerde degerini initialize etmedigin "hanelere" ulasıp degerini okumak istersen memory hatası alırsın.

ayrıca yukardaki code u tam olarak dogru yazdıgına emin misin?
char arrayi de olsa bişiler hala yalnıs..
×
×
  • Yeni Oluştur...