English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل تعليمي أساسي بلغة C

تحكم في العملية في لغة C

الوظائف في لغة C

المسافات في لغة C

المراجع في لغة C

ال

مباني لغة C

ملفات لغة C

C أخرى

دليل مرجع لغة C

استخدام دالة مكتبة C realloc() ومثال

مكتبة القياسية - <stdlib.h>

دالة مكتبة C void *realloc(void *ptr, size_t size) لتحسين حجم malloc أو calloc الذاكرة التي تم تخصيصها ptr حجم الذاكرة الذي تشير إليه

بيان

هذا هو بيان دالة realloc()

void *realloc(void *ptr, size_t size)

المتغيرات

  • ptr -- يشير إلى نواة ذاكرة يجب إعادة تخصيصها، التي تم تخصيصها مسبقًا من خلال دعوة malloc، calloc أو realloc لتخصيص الذاكرة. إذا كان يشير إلى نواة فارغة، يتم تخصيص نواة جديدة ويتم إرجاع نواة تشير إليها.
  • حجم -- حجم جديد للكتلة بالبايتات. إذا كان الحجم 0، فإن الكتلة الموجودة بالفعل التي يشير إليها ptr يتم إطلاقها، ويتم إرجاع نواة فارغة.

القيمة المعدة

تعود الدالة إلى نواة ذاكرة تحتوي على حجم جديد.

مثال على الإنترنت

هذا المثال يوضح استخدام دالة realloc()

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
   char *str;
   /* 最初的内存分配 */
   str = (char *) malloc(15);
   strcpy(str, "w3codebox");
   printf("String = %s,  Address = %p\n", str, str);
   /* 重新分配内存 */
   str = (char *) realloc(str, 25);
   strcat(str, ".com");
   printf("String = %s,  Address = %p\n", str, str);
   free(str);
   return(0);
}

نحن نكتب ونشغل البرنامج المذكور أعلاه، مما ينتج عنه النتيجة التالية:

النص = w3codebox، العنوان = 0x7fa2f8c02b10
النص = oldtoolbag.com، العنوان = 0x7fa2f8c02b10

مكتبة القياسية - <stdlib.h>