From: Halil Demirezen (halild@bilmuh.ege.edu.tr)
Date: Thu 07 Aug 2003 - 21:25:58 EEST
>
> Umarim yeterince anlasilir olarak anlatabilmisimdir. Eger bir yerlerde
> pointer ile ayni seydir gibi bir sey okumussaniz bunun cogu zaman yeni
> baslayanlari programcilara fazla yuklenmemek icin soylenmis bir sey
> oldugunu kabul edin. Pointer farkli bir seydir, array ile aslen uzaktan
> yakindan alakali degildir. Arraylari pointer gibi kullanamzsiniz. Ama
> pointerleri bir arrayin adresine esitleyip array gibi kullanabilirsiniz.
> elbette boyle bazi puf noktalari damdan duser gibi basiniza dusebilir.
> Bu durumda da boyle sorar, sorusturur, konuya vakif olabileceginiz
> bilgileri edinirsiniz. Iste C kullanmak, size boyle pek cok puf
> noktasini ogretir, diger dillerden farkli olarak..
evet burada serdar arkadasimizi dogrulayacak bir kode ornegi var. Mesela
s degiskeni bir char pointer mevcut 32 bit linuxlarda 4 byte bir adress.
sonra gidip malloc ile 10 byte yada 10 karakterlik bir array olusturup
pointer e bu arrayin adresini ariyoruz. Ve o pointer uzerinden o adrese
"deneme" stringini atiyoruz. Hicbir Segmentation fault alamiyorsunuz.
Ama literaller benim de tereddut ettigim gibi read only text segmentinde
saklaniyor. Boylece herhangi bir yazma isleminde Segmentation Fault aliyorsunuz.
int main()
{
char *s;
s = (char *)malloc(10);
s = "deneme";
printf("%s\n", s);
}