Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dalam bahasa C, apakah maksud Realloc?

Dalam bahasa C, apakah maksud Realloc?

WBOY
WBOYke hadapan
2023-08-28 12:41:051375semak imbas

Fungsi peruntukan memori pustaka C void *realloc(void *ptr, size_t size) cuba mengubah saiz blok memori yang ditunjuk oleh ptr yang sebelum ini diperuntukkan menggunakan panggilan malloc atau calloc.

Fungsi Peruntukan Memori

Memori boleh diperuntukkan dalam dua cara:

Dalam bahasa C, apakah maksud Realloc?

Setelah memori diperuntukkan pada masa penyusunan, ia tidak boleh ditukar semasa pelaksanaan. Sama ada ingatan tidak mencukupi, atau ia membazir ingatan.

Penyelesaian adalah untuk mencipta memori secara dinamik, iaitu berdasarkan keperluan program semasa pelaksanaan.

Fungsi perpustakaan standard untuk pengurusan memori dinamik adalah seperti berikut:

  • malloc ( )
  • calloc ( )
  • realloc ( )
  • percuma ( )

  • fungsi realloc ( ) digunakan untuk realloc ( )

  • ingatan yang diperuntukkan.
  • Boleh mengurangkan atau meningkatkan daya ingatan yang diperuntukkan.
  • Mengembalikan penunjuk kosong yang menunjuk ke alamat asas memori yang diperuntukkan semula. Sintaks fungsi

realloc() adalah seperti berikut:

Free void *realloc (pointer, newsize);

Contoh

Contoh berikut menunjukkan penggunaan fungsi realloc().

int *ptr;
ptr = (int * ) malloc (1000);// we can use calloc also
- - -
- - -
- - -
ptr = (int * ) realloc (ptr, 500);
- - -
- - -
ptr = (int * ) realloc (ptr, 1500);

Contoh

Berikut ialah program C menggunakan fungsi realloc():

Demonstrasi Dalam Talian

#include<stdio.h>
#include<stdlib.h>
int main(){
   int *ptr, i, num;
   printf("array size is 5</p><p>");
   ptr = (int*)calloc(5, sizeof(int));
   if(ptr==NULL){
      printf("Memory allocation failed");
      exit(1); // exit the program
   }
   for(i = 0; i < 5; i++){
      printf("enter number at %d: ", i);
      scanf("%d", ptr+i);
   }
   printf("</p><p>Let&#39;s increase the array size to 7</p><p> ");
   ptr = (int*)realloc(ptr, 7 * sizeof(int));
   if(ptr==NULL){
      printf("Memory allocation failed");
      exit(1); // exit the program
   }
   printf("</p><p> enter 2 more integers</p><p></p><p>");
   for(i = 5; i < 7; i++){
      printf("Enter element number at %d: ", i);
      scanf("%d", ptr+i);
   }
   printf("</p><p> result array is: </p><p></p><p>");
   for(i = 0; i < 7; i++){
      printf("%d ", *(ptr+i) );
   }
   return 0;
}

Output

Apabila program di atas dilaksanakan, ia menghasilkan keputusan berikut ∜reee🎜

Atas ialah kandungan terperinci Dalam bahasa C, apakah maksud Realloc?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam