13.1 Dinamik Dizi Fonksiyonları

13.1   Dinamik Dizi Fonksiyonları

ANSI C’de, dinamik diziler işaretçi kullanılarak ve standart kütüphanedeki malloc()calloc()realloc() ve free() fonksiyonlarının yardımıyla ile oluşturulur veya boşaltılır. Bu fonksiyonlar Tablo 13.1 de listelenmiştir.

Tablo 13.1: stdlib.h kütüphanesindeki dinamik bellek fonksiyonları

Dinamik Bellek Fonksiyonu Açıklama
void *malloc(size_t eleman_sayısı); Bellekte herbiri size_t tipinde olan eleman_sayısı kadar yer (bellek bloğu) ayırır. Bu yer verilmezse geriye NULL gönderir.
void *calloc(size_t eleman_sayısı, size_t nbayt); Bellekte herbiri nbayt kadar yer işgal edecek eleman_sayısı kadar boş yer ayırır ve bütün bitleri sıfırlar. Bu yer ayrılamazsa geriye NULL gönderir.
void *realloc(void *ptr, size_t nbayt); ptr işaretçisi ile gösterilen bellek bloğunu, nbayt kadar büyüterek veya küçülterek değiştirir. Bu iş gerçekleşmezse geriye NULL gönderir.
void free(void *ptr); Daha önce ayrılan adresi ptr‘de saklanan bellek alanının boşaltır.

Tamsayı tipinde bir dinamik dizi tanımlanırken aşağıdaki işlem basamakları izlenmelidir:

Program 13.1, eleman sayısı klavyeden girilen bir dizinin aritmetik ortalamasını hesaplar. Eleman sayısı sıfır veya negatif bir değer olduğunda, sonsuz döngüden çıkılır ve program sonlanır. İnceleyiniz.

Program 13.1: Dinamik dizi ile ortalama hesabı

ÇIKTI

 

 

Karakter dizileri içinde benzer adımlar uygulanır. Program 13.2’de tanımlanan altKatar() fonksiyonu, bir katarın alt parçalarını geri döndürür.

Program 13.2: Bir karakter dizisinin alt parçalarının bulunması

ÇIKTI

p

pr

pro

prog

progr

progra

program

programl

programla

programlam

programlama

 

Bir cevap yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.