İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

type casting

Kömürkentli21.10.20202 cevap1.008 görüntüleme
2020'den beri15 mesaj
#1
ip = (int*) malloc(sizeof(int));
dinamik bir dizi tanımlamak istediğimizde bir pointer tanımlayım malloc fonksiyonunu kullanıyoruz . merak ettiğim şey bu fonksiyonun tipini neden integer pointera dönüştürüyoruz madem mallocu kullanmak için böyle bir şey yapmamız gerekiyor neden malloc fonksiyonu pointer tipinde diğil ?
👍 1
Cevaplar
2013'den beri234 mesaj
#2
Zaten pointer döndürür. Ama ne saklamak istiyorsanız ona cast etmeniz gerekir. Siz örneğinizde "bana bir integer'lik yer ver ve ben bunu yine integer için kullanıcam" diyorsunuz. Ama isterseniz o alanı örneğin char için de kullanabilirsiniz. Siz özellikle belirtmezseniz compiler bunu bilemez. Type-safe diller böyle.
👍 2
2020'den beri5 mesaj
#3
ip = (int*) malloc(sizeof(int));

Bu kodda (int*) kısmını silerseniz malloc'un void* döndürdüğünü göreceksiniz. Burada heap bölgesinde bir tam sayılık yer ayırıyorsunuz ve işaretçinizin tipi de int işaretçisi.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.