Hoşgeldin Misafir

C Pre/Post Pointer Increment

MiRaT

13 Kas 2017
2,077 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
An itibari ile başımdan geçen bir olayı sizlere de anlatmak istiyorum. Okulumun son lab saatlerinde C ile recursive bi fonskiyon yapıp, fonskiyona bir string gönderiyoruz. Fonsksiyon bize stringdeki karakter sayısı ile dönüş yapıyor. Amaç ise debug yeteneklerimizi geliştirmek falan.--

Lakin labın yarısına mâl olan bir bilgi eksikliği ki,--


Kod:
int Rec(char *str)


-Fonksiyona char pointer gönderip, en son return kısmında--

--

Kod:
return 1+(str++)


-kullandık.--
--



Tabii ki tahmin edeceğiniz üzere, segmentasyon hataları havada uçuşuyor, sınıf kaynıyor falan.--



Buradan ders çıkarmamız gereken hata ise, C pointerlarında *x++ ile ++*x farklı şeyleri ifade etmekte. Post increment(*x++) sadece pointerın değerini değiştirirken, pre increment değeri değiştirip tekrardan depoluyor.--


-Belki bir kısmınız çoktan biliyordu, lakin böyle küçük detaylar büyük dertlere sebep olabiliyor.----