Çözüldü Calloc fonksiyonu nasıl yazılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

UmpaLumpalar

Centipat
Katılım
8 Ocak 2022
Mesajlar
72
Daha fazla  
Cinsiyet
Erkek
1667127817002.png


Arkadaşlar selam. Kendi calloc fonksiyonumu yazmaya çalıştım da. Yanlış olan kısımlar var mı acaba? Yardımcı olursanız çok sevinirim.
 
Çözüm
malloc isleminden sonra ptr nin null olup olmadigini kontrol etmelisin eğer null ise ve program akisa devam ederse bzero fonksiyonu çalıştığında program cokebilir, cunku olmayan bir bellek alanina erismeye calisacak. Ek olarak n ve size sifir olduğunu kontrol etmene lüzum yok biri sifirsa zaten malloc null dönecek, sadece ptr yi kontrol et.
malloc isleminden sonra ptr nin null olup olmadigini kontrol etmelisin eğer null ise ve program akisa devam ederse bzero fonksiyonu çalıştığında program cokebilir, cunku olmayan bir bellek alanina erismeye calisacak. Ek olarak n ve size sifir olduğunu kontrol etmene lüzum yok biri sifirsa zaten malloc null dönecek, sadece ptr yi kontrol et.
 
Çözüm
malloc isleminden sonra ptr nin null olup olmadigini kontrol etmelisin eğer null ise ve program akisa devam ederse bzero fonksiyonu çalıştığında program cokebilir, cunku olmayan bir bellek alanina erismeye calisacak. Ek olarak n ve size sifir olduğunu kontrol etmene lüzum yok biri sifirsa zaten malloc null dönecek, sadece ptr yi kontrol et.
1667130778369.png

bu daha iyi oldu diyebilir miyiz?
 
Butun allocator functionlar sifir girdisi icin null ya da unique ptr doner, sifir kontrolu yapmak luzumsuz normal isleyise aykiri sadece ptr null olup olmadigina bak, bir de bzero yerine direk memset kullanabilirsin. Bu arada calloc fonksiyonunun aynisini yazmis olmuyorsun, calloc fonksiyonu bellek alanini sifirlamaktan ziyade isletim sisteminden zaten null olan bellek bloglarini istiyor, bu nedenle senin yazdigin fonksiyon normal calloc fonksiyonundan ciddi performans farki olacaktir cogu durumda.
 

Yeni konular

Geri
Yukarı