El cevap: hocam once sunu soyleyim. array için yaptıgın tanımlama dogrudur. cunku array statiktir. ve initialize yaptıgın anda onun boyu belirlenir. ve değiştirilemez. onun için burada sorun olmaması dogal. ikincisi. diğer tanımlaman pointer. ve bu da dinamiktir. malloc, alloc gibi fonksiyonlarla yer alman lazım . baska turlu olmaz. bu programda calişmaz... cunku en basta pointere yer almadan initialize yapiyorsun. ben compile ettim bende calişmior zeten. caaat diye hatayı veriyo... bu derleme işleri compiler den compilere degişir. seninki muhtemelen turbo yada visual 6.0. bu derleyiciler bu hataları es gecebiliyor.. ayrıca (ad2+1) = 'x' bu işlemde hiç bir sorun yoktur. guzel bi atama yapılmış. fakat yukarıda soyledigim gibi en basta yer almamıssın be gozum...

ilk yazdığın denemede ad2 değişkeni pointer ve bellek yeri belli değil yani ad2 diye tanımlarken öncelikle belirttiği adresi memcpy veya bzero gibi prosedürlerle \0 karakteriyle doldurmak gerekir, veya new tanımı ya da malloc kullanarak yeni boş bi belleğe koymalı değişkeni.. soruna gelince (ad2+1) = 'x' tanımı hatalıdır çünkü direk adrese atama yapamazsın şöyle bir tanımlama doğrudur (ad2+1) veya (ad2++). direk atama olayı hatalıdır pointerlarda bu gibi durumlar için Hacettepeli

merhaba c de pointer konusu ogrenmekteyim. asagidaki ornek kod ta derleyici hic bir hata vermezken runtime da program hatadan dolayi kapatiliyor. #include <stdio. h> #include <string. h> int main Biraz araştirma yaptiktan sonra bunun pointerin gosterdigi yerin guvenli olmamasindan kaynaklandigini az bucuk anladim. Ancak kafamda yerinde oturmasi icin detayli bir anlatima ihtiyacim var. nasil oluyor da ad2 isimli pointeri strcpy da kullanmassam hic bir hata olmadan bir sonraki printf de ekrana yazdirabiliyorum, ama hiç bir degisiklik yapamiyorum?. char ad2="orjinal2"; printf("%s", ad2); //burada hic bir prob. yok (ad2+1)='c'; //kelimenin 2. harfini c yapmaya calisiyorum, ama burada hata veriyor. Anlamadigim sey, pointerin gosterdigi stringe hic bir degisiklik yapmadan istedigim zaman erisebiliyorum ancak uzerinde degisklik yapamiyorum. Acaba string ifadeleri bellegin herhangi bir ROM bolgesine mi yaziliyor?ya da baska bi seymi? aciklamalarinizi bekliyorum mumkunse. iyi gunler.