C Veri Tabanina Eski Veri Yle Toplayarak Ekleme

C Verisine Eski Veriyle Toplayarak Ekleme

C programlama dilinde, mevcut bir veri yapısına yeni veriler eklemek için çeşitli yöntemler vardır. Bu yöntemlerden biri, mevcut veriyi yeni veriyle toplayarak eklemektir. Bu işlem, realloc() fonksiyonu ile yapılabilir.

realloc() Fonksiyonu

realloc() fonksiyonu, daha önce ayrılmış bir bellek bloğunun boyutu değiştirir. Fonksiyonun prototipi şu şekildedir:

c
void *realloc(void *ptr, size_t size);

Burada:

  • ptr: Boyutu değiştirilecek bellek bloğunun adresini gösteren bir işaretçidir.
  • size: Bellek bloğunun yeni boyutu (bayt cinsinden).

realloc() fonksiyonu başarılı olursa, yeniden ayrılmış bellek bloğunun adresini döndürür. Başarısız olursa, NULL döndürür.

Veri Toplayarak Ekleme

Mevcut bir veri yapısına veri toplamak için realloc() fonksiyonu şu şekilde kullanılır:

  1. Mevcut veri yapısının adresini ptr değişkenine atayın.
  2. Yeni veri yapısının toplam boyutu (bayt cinsinden) için size değişkenini hesaplayın.
  3. realloc() fonksiyonunu ptr ve size parametreleriyle çağırın.
  4. realloc() fonksiyonunun döndürdüğü adresi ptr değişkenine atayın.

Bu işlem, mevcut veri yapısının boyutu değiştirilerek yeni verilerin ekleneceği yeni bir bellek bloğu ayrılmasını sağlayacak.

Örnek Kod

Aşağıdaki kod örneği, bir dizinin sonuna yeni bir öğe eklemek için realloc() fonksiyonunu kullanmaktadır:

“`c

include

include

int main() {
// Mevcut diziyi tanımlayın
int dizi = (int )malloc(sizeof(int) * 5);
dizi[0] = 1;
dizi[1] = 2;
dizi[2] = 3;
dizi[3] = 4;
dizi[4] = 5;

// Yeni öğeyi tanımlayın
int yeni_ogrenci = 6;

// Dizinin boyutu değiştirin ve yeni öğeyi ekleyin
dizi = (int *)realloc(dizi, sizeof(int) * (5 + 1));
dizi[5] = yeni_ogrenci;

// Yeni diziyi yazdırın
for (int i = 0; i < 6; i++) {
    printf("%d ", dizi[i]);
}

// Ayrılan belleği serbest bırakın
free(dizi);

return 0;

}
“`

Bu kod çıktısı:

1 2 3 4 5 6

Faydalı Siteler ve Dosyaları


Yayımlandı

kategorisi