﻿
{"id":6292,"date":"2017-05-19T15:45:27","date_gmt":"2017-05-19T15:45:27","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=6292"},"modified":"2017-05-19T15:45:27","modified_gmt":"2017-05-19T15:45:27","slug":"cta-gostericipointer-fixed-anahtar-sozcugu-vii","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-gostericipointer-fixed-anahtar-sozcugu-vii\/","title":{"rendered":"C#\u2019ta G\u00f6sterici(Pointer) \u2013 fixed Anahtar S\u00f6zc\u00fc\u011f\u00fc \u2013 VII"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>C#&#8217;ta g\u00f6stericiler \u00fczerine olan yaz\u0131 dizimizin VII. makalesinde yine sizlerle beraberiz. Bu i\u00e7eri\u011fimizde g\u00f6stericiler ile \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z bellek adresleri \u00fczerinde bir koruma\/sabitleme g\u00f6revi g\u00f6recek olan fixed anahtar s\u00f6zc\u00fc\u011f\u00fc \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<p>Fixed keyword\u00fcn\u00fc ele alabilmek i\u00e7in \u00f6ncelikle teknik bilgimizi \u015f\u00f6yle bir masaya yat\u0131rmal\u0131 ve \u00fczerinde bir fark\u0131ndal\u0131\u011fa varmal\u0131y\u0131z. Biliyorsunuz ki, C#&#8217;ta referans tipli de\u011fi\u015fkenler belle\u011fin Heap b\u00f6lgesinde tutulan nesneleri i\u015faretlememizi sa\u011flayan yap\u0131lard\u0131r. Bu de\u011fi\u015fkenler sayesinde direkt olarak nesneye eri\u015femesekte, o nesneyi i\u015faretledi\u011fimiz i\u00e7in referans arac\u0131l\u0131\u011f\u0131yla eri\u015febilmekteyiz.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6295\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII.png\" alt=\"C#\u2019ta G\u00f6sterici(Pointer) \u2013 fixed Anahtar S\u00f6zc\u00fc\u011f\u00fc \u2013 VII\" width=\"404\" height=\"139\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII.png 404w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-300x103.png 300w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/a><\/p>\n<p>Yukar\u0131daki \u00f6rnek \u015femadan da g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere &#8220;x&#8221; referans\u0131 &#8220;Heap&#8221; b\u00f6lgesindeki nesneyi i\u015faretlemi\u015f bulunmakta, haliyle &#8220;x&#8221; \u00fczerinden nesneye eri\u015fim sa\u011flanabilmektedir.<\/p>\n<p>\u015eimdi burada dikkatinizi \u00e7ekerim.<\/p>\n<p>Gereksiz Bilgi Toplay\u0131c\u0131(Garbage Collector) yap\u0131s\u0131n\u0131 biliyorsunuz. Bu yap\u0131 bellekteki bo\u015f gezen nesneleri yok eden bir mekanizmaya sahiptir. Ama i\u015flevsel olarak g\u00f6revi bir tek bundan ibaret de\u011fildir. As\u0131l g\u00f6revi bellek y\u00f6netimi oldu\u011fu i\u00e7in bu s\u00fcre\u00e7te gereken her t\u00fcrl\u00fc sorumlulu\u011fu \u00fcstlenmi\u015f bir mekanizmad\u0131r. Bu sorumluluklardan biriside, bellek optimizasyonu a\u00e7\u0131s\u0131ndan Heap bellek b\u00f6lgesindeki nesnelerin yerlerini her an de\u011fi\u015ftirebilme yetkisine sahip olmas\u0131d\u0131r.<\/p>\n<p>E\u011fer ki Heap bellek b\u00f6lgesindeki nesnelerin yerlerini de\u011fi\u015ftirirse bu de\u011fi\u015fimden biz yaz\u0131l\u0131mc\u0131lar\u0131n\/kullan\u0131c\u0131lar\u0131n haberleri olmayacakt\u0131r. \u00c7\u00fcnk\u00fc nesnenin yeri de\u011fi\u015ftirildi\u011fi anda o nesneyi i\u015faretleyen Stack b\u00f6lgesindeki referans\u0131n tuttu\u011fu bellek adreside yenisiyle otomatik olarak g\u00fcncelle\u015ftirilecektir. Bundan dolay\u0131 ilgili referans her halukarda ayn\u0131 nesneyi g\u00f6stermi\u015f olacakt\u0131r. Dolay\u0131s\u0131yla biz ayn\u0131 referansla farkl\u0131 bir bellek b\u00f6lgesini iste\u011fimiz d\u0131\u015f\u0131nda kullanm\u0131\u015f oluyoruz. Haliyle tabiri caizse Garbage Collector mekanizmas\u0131 ile bellek y\u00f6netimindeki d\u00f6nen dolaplar\u0131 ruhumuz duymad\u0131\u011f\u0131ndan bu durumlar\u0131 takip etmekle m\u00fckellef de\u011filiz.<\/p>\n<p><strong><em>&#8220;Peki Garbage Collector&#8217;\u0131n bellek y\u00f6netiminde yapt\u0131\u011f\u0131 yer de\u011fi\u015ftirmelerden haberdar olmuyorsak bu bizi niye ilgilendiriyor?&#8221;<\/em><\/strong> sorusunu sorabilirsiniz. Unutmay\u0131n&#8230; Bellek y\u00f6netimini pointerlar ile ele alm\u0131\u015f bulunuyoruz. Haliyle bu tarz otomatik de\u011fi\u015fimler manuel y\u00f6netim durumlar\u0131nda beklenmedik bir \u00e7ok ar\u0131zaya sebebiyet verebilir. O y\u00fczden cevaplanmas\u0131 gereken soru <strong><em>&#8220;G\u00f6stericiler kullan\u0131rken Garbage Collector&#8217;\u0131n bellek y\u00f6netiminde yapt\u0131\u011f\u0131 yer de\u011fi\u015ftirmeler nas\u0131l sonu\u00e7lar do\u011furabilir?&#8221;<\/em><\/strong> olacakt\u0131r.<\/p>\n<p>\u015e\u00f6yle cevaplayal\u0131m. Bir nesnenin \u00fcye elemanlar\u0131 \u00fczerinde pointerlarla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z\u0131 varsayal\u0131m. Bu nesnenin Garbage Collector taraf\u0131ndan bellek adresi de\u011fi\u015ftirildi\u011fi an memberlar\u0131n\u0131nda bellek adresleri de\u011fi\u015ftirilecektir. Haliyle ilgili nesnemizin \u00fcye elemanlar\u0131n\u0131 i\u015faretleyen pointerlar bo\u015fa \u00e7\u0131km\u0131\u015f olacakt\u0131r. \u0130\u015fte bu olas\u0131 durumu engellemek i\u00e7in kulland\u0131\u011f\u0131m\u0131z nesnenin ve \u00fcye elemanlar\u0131n\u0131n Garbage Collector taraf\u0131ndan bellek adreslerinin de\u011fi\u015ftirilmemesi sa\u011flanmal\u0131d\u0131r.<\/p>\n<p><strong><em>fixed anahtar s\u00f6zc\u00fc\u011f\u00fc<\/em><\/strong>, bir nesnenin \u00fcye eleman\u0131n\u0131n bellek adresini sabitlememizi, garbage collector taraf\u0131ndan m\u00fcdahale edilmemesini sa\u011flamaktad\u0131r. Yani ilgili member\u0131 koruma alt\u0131na ald\u0131\u011f\u0131m\u0131z\u0131 d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<p>Pratik olarak \u00f6rneklendirmeye ge\u00e7meden \u00f6nce \u015funu da s\u00f6ylemek isterim ki, zaten fixed keyword\u00fcn\u00fc kullanmadan nesne \u00fcyelerinin bellek adreslerini pointer ile tutmak m\u00fcmk\u00fcn de\u011fildir. Bunun sebebi yukar\u0131da anlatt\u0131\u011f\u0131m olas\u0131 durumla ilgili oldu\u011fu i\u00e7in C# geli\u015ftiricileri taraf\u0131ndan bu olas\u0131 durum ba\u015ftan engellenmi\u015ftir.<\/p>\n<blockquote><p>\n<strong><em>\u00dcye elemanlar\u0131n\u0131n adreslerini elde edemedi\u011fimiz bu t\u00fcr nesnelere managed type(y\u00f6netilen tip) denilmektedir. Buradan \u015f\u00f6yle bir genellemeye varabiliriz ki s\u0131n\u0131flar managed type kapsam\u0131na girmektedirler.<\/em><\/strong>\n<\/p><\/blockquote>\n<p>\u015eimdi anlatt\u0131klar\u0131m\u0131z\u0131 pratik olarak ele alal\u0131m. <\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            unsafe\r\n            {\r\n                MyClass myClass = new MyClass();\r\n                int* pointer = &amp;(myClass.MyField);\r\n            }\r\n            Console.Read();\r\n        }\r\n    }\r\n    class MyClass\r\n    {\r\n        public int MyField;\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer &#8220;MyClass&#8221; isimli s\u0131n\u0131f\u0131n &#8220;MyField&#8221; isminde \u00fcye eleman\u0131 bulunmaktad\u0131r. Bu s\u0131n\u0131f\u0131n nesnesi \u00fczerinden i\u00e7erisindeki eleman\u0131n bellek adresine eri\u015filmeye \u00e7al\u0131\u015f\u0131ld\u0131\u011f\u0131 vakit a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi hatayla kar\u015f\u0131la\u015f\u0131lmaktad\u0131r.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-3.png\" alt=\"C#\u2019ta G\u00f6sterici(Pointer) \u2013 fixed Anahtar S\u00f6zc\u00fc\u011f\u00fc \u2013 VII\" width=\"338\" height=\"285\" class=\"aligncenter size-full wp-image-6323\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-3.png 338w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-3-300x253.png 300w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/a><br \/>\nBu hatan\u0131n sebebi, biraz \u00f6nce bahsetti\u011fim gibi nesne elemanlar\u0131n\u0131n bellek adreslerine fixed anahtar s\u00f6zc\u00fc\u011f\u00fc olmaks\u0131z\u0131n eri\u015filmeye \u00e7al\u0131\u015f\u0131lmas\u0131d\u0131r. Hatan\u0131n as\u0131l nedeni ise yukar\u0131da anlatmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131m olas\u0131 hatan\u0131n ta kendisidir.<\/p>\n<p>Bu olas\u0131 hatay\u0131 burada daha somut olarak bir daha ele al\u0131rsak e\u011fer; Garbage Collector her an &#8220;MyClass&#8221; nesnesinin bellek adresini de\u011fi\u015ftirebilir. Ee buda her an \u00fcye eleman olan &#8220;MyProperty&#8221; de\u011fi\u015fkenininde bellek adresi de\u011fi\u015febilir demek oluyor. E\u011fer ki bu kullan\u0131ma izin verilseydi &#8220;MyProperty&#8221; bellek adresi ans\u0131z\u0131n de\u011fi\u015fti\u011fi durumda &#8220;pointer&#8221; isimli g\u00f6stericimiz bo\u015fa d\u00fc\u015fecekti. Daha do\u011frusu nereye ait oldu\u011fu bilinmeyen bir adres ta\u015f\u0131yor olacakt\u0131. Ee herhalde bu durumda d\u00fc\u015f\u00fclebilecek olas\u0131 vahameti g\u00f6zler \u00f6n\u00fcne getiriyor olsa gerek&#8230; D\u00fc\u015f\u00fcnsenize, ne oldu\u011funu bilmedi\u011finiz bir bellek adresi(<em>art\u0131k i\u00e7erisinde i\u015fletim sistemini ilgilendiren veriler mi vard\u0131r, yoksa ba\u015fka kritik bir alan m\u0131d\u0131r bilemeyiz<\/em>) \u00fczerinde bilin\u00e7li\/bilin\u00e7siz farketmeksizin ama yanl\u0131\u015f i\u015flemler yapt\u0131\u011f\u0131m\u0131z\u0131&#8230;<\/p>\n<p>\u0130\u015fte bu y\u00fczden yukar\u0131daki kullan\u0131m olas\u0131 hatay\u0131 engellemek i\u00e7in yasaklanm\u0131\u015ft\u0131r ve bir yandanda fixed kullan\u0131m\u0131 olmad\u0131\u011f\u0131 i\u00e7in hata vermektedir.<\/p>\n<p><strong><em>fixed Anahtar S\u00f6zc\u00fc\u011f\u00fcn\u00fcn Kullan\u0131m\u0131<\/em><\/strong><br \/>\nfixed keyword\u00fcn\u00fcn kullan\u0131m prototipi a\u015fa\u011f\u0131daki gibidir.<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-2.png\" alt=\"C#\u2019ta G\u00f6sterici(Pointer) \u2013 fixed Anahtar S\u00f6zc\u00fc\u011f\u00fc \u2013 VII\" width=\"242\" height=\"95\" class=\"aligncenter size-full wp-image-6319\" \/><\/a><\/p>\n<p>\u015eimdi yukar\u0131larda yapmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z \u00f6rne\u011fi fixed keyword\u00fc ile tekrarlayal\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            unsafe\r\n            {\r\n                MyClass myClass = new MyClass();\r\n                fixed(int* ipointer = &amp;(myClass.MyField))\r\n                {\r\n                    myClass.MyField = 3;\r\n                    Console.WriteLine($&quot;ipointer : {*ipointer} | MyField : {myClass.MyField}&quot;);\r\n                    *ipointer = 13;\r\n                    Console.WriteLine($&quot;ipointer : {*ipointer} | MyField : {myClass.MyField}&quot;);\r\n                }\r\n            }\r\n            Console.Read();\r\n        }\r\n    }\r\n    class MyClass\r\n    {\r\n        public int MyField;\r\n    }\r\n<\/pre>\n<p>Bu \u015fekilde hem ald\u0131\u011f\u0131m\u0131z hata ortadan kalkacakt\u0131r, hemde kulland\u0131\u011f\u0131m\u0131z bir nesnenin \u00fcye eleman\u0131n\u0131n bellek adresi garbage collector&#8217;\u0131n bellek y\u00f6netimine kar\u015f\u0131 korumaya\/sabitlenmeye al\u0131nacakt\u0131r.<\/p>\n<p>Hemen hemen her yap\u0131da oldu\u011fu gibi fixed anahtar s\u00f6zc\u00fc\u011f\u00fcnde de birden fazla kullan\u0131m varyasyonu mevcuttur. Mesela birden fazla de\u011fi\u015fkeni fixed olarak i\u015faretlemek i\u00e7in a\u015fa\u011f\u0131daki prototipte yap\u0131y\u0131 kullanabilirsiniz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-1.png\" alt=\"C#\u2019ta G\u00f6sterici(Pointer) \u2013 fixed Anahtar S\u00f6zc\u00fc\u011f\u00fc \u2013 VII\" width=\"253\" height=\"184\" class=\"aligncenter size-full wp-image-6327\" \/><\/a><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            unsafe\r\n            {\r\n                MyClass myClass = new MyClass();\r\n\r\n                fixed (int* i1 = &amp;myClass.MyField)\r\n                fixed (char* i2 = &amp;myClass.MyField2)\r\n                fixed (bool* i3 = &amp;myClass.MyField3)\r\n                fixed (decimal* i4 = &amp;myClass.MyField4)\r\n                {\r\n                    Console.WriteLine($&quot;MyField : {*i1} | MyField2 : {*i2} | MyField3 : {*i3} | MyField4 : {*i4}&quot;);\r\n                }\r\n            }\r\n            Console.Read();\r\n        }\r\n    }\r\n    class MyClass\r\n    {\r\n        public int MyField = 3;\r\n        public char MyField2 = 'a';\r\n        public bool MyField3 = true;\r\n        public decimal MyField4 = 123;\r\n    }\r\n<\/pre>\n<p>Ayriyetten a\u015fa\u011f\u0131daki varyasyonda da oldu\u011fu gibi birden fazla ayn\u0131 tipteki de\u011fi\u015fkeni fixed ile i\u015faretleyebiliyoruz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-4.png\" alt=\"\" width=\"320\" height=\"115\" class=\"aligncenter size-full wp-image-6330\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-4.png 320w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/05\/C\u2019ta-G\u00f6stericiPointer-\u2013-fixed-Anahtar-S\u00f6zc\u00fc\u011f\u00fc-\u2013-VII-4-300x108.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            unsafe\r\n            {\r\n                MyClass myClass = new MyClass();\r\n\r\n                fixed (int* pointer1 = &amp;myClass.MyField, pointer2 = &amp;myClass.MyField2)\r\n                {\r\n                    Console.WriteLine($&quot;pointer1 : {*pointer1} | pointer2 : {*pointer2}&quot;);\r\n                }\r\n            }\r\n            Console.Read();\r\n        }\r\n    }\r\n    class MyClass\r\n    {\r\n        public int MyField = 3;\r\n        public int MyField2 = 4;\r\n    }\r\n<\/pre>\n<p>Bu \u015fekilde C# programlama dilinde fixed anahtar s\u00f6zc\u00fc\u011f\u00fcn\u00fcn ne i\u015fe yarad\u0131\u011f\u0131ndan ve varyasyonlar\u0131yla birlikte kullan\u0131m\u0131ndan detayl\u0131ca bahsetmi\u015f olduk. Bundan sonraki g\u00f6sterici makale dizisiyle ilgili yaz\u0131lar\u0131m\u0131zda yer yer fixed keyword\u00fcn\u00fc kullanaca\u011f\u0131m\u0131z\u0131 bildirmek isterim. Ayriyetten bir sonraki yaz\u0131m\u0131zda da g\u00f6stericilerde dizi i\u015flemlerini ele alaca\u011f\u0131m\u0131z\u0131n m\u00fcjdesini vererek bu i\u00e7eri\u011fimizi noktal\u0131yorum.<\/p>\n<p>G\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, C#&#8217;ta g\u00f6stericiler \u00fczerine olan yaz\u0131 dizimizin VII. makalesinde yine sizlerle beraberiz. Bu i\u00e7eri\u011fimizde g\u00f6stericiler ile \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z bellek adresleri \u00fczerinde bir koruma\/sabitleme g\u00f6revi g\u00f6recek olan fixed anahtar s\u00f6zc\u00fc\u011f\u00fc \u00fczerine konu\u015fuyor olaca\u011f\u0131z. Fixed keyword\u00fcn\u00fc ele&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[1792,1790,1791,1789,1746,1761,1788,1744,1750,1793,1794],"class_list":["post-6292","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-sharp-c","tag-c-fixed","tag-c-fixed-anahtar-sozcugu","tag-c-fixed-keyword","tag-c-gostericiler-fixed-anahtar-sozcugu","tag-c-pointer","tag-cta-gosterici","tag-fixed-anahtar-sozcugu","tag-garbage-collector","tag-gereksiz-bilgi-toplayici","tag-managed-type","tag-yonetilen-tip"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=6292"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6292\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=6292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=6292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=6292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}