Bloodless Mesaj tarihi: Ocak 2, 2015 Paylaş Mesaj tarihi: Ocak 2, 2015 Bildiğimiz üzere pointer (işaretçiler) bellek adreslerine işaret ederler. Merak ettiğim; char * str; str = "OSMAN BIZI ISINLA"; şeklinde bir işaretçiye nasıl oluyorda atama yapabilirken, scanf("%s",str); şeklinde bir atamaya izin vermiyor. Ya da bir dizin olarak düşünürsek değişkenimizi char isim[32]; isim = "HEDEEE"; yapamazken scanf ile atayabiliyoruz. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Artariel Mesaj tarihi: Ocak 4, 2015 Paylaş Mesaj tarihi: Ocak 4, 2015 "OSMAN BIZI ISINLA" assemblyde gömülü bir string o yüzden str'yi değiştirmeye çalışırsan program patlar, hatta char *str değil const char *str olarak tanımlaman lazım ki istesen de değiştirmeye çalışama. compilerlar warning bile veriyor bunun için isim[32] ise sonradan define edilemez, çünkü char isim[32]; dediğinde isim artık bi yeri işaret ediyor, başka bi adres işaret edemezsin. strcpy, memcpy ile içine doldurman gerekiyor. başlangıçta char isim[32]="aaaa"; gibi bir şey yapabilirsin ama sonradan definition olmaz. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar