Dalam bahasa C, apakah maksud Realloc?

WBOY
Lepaskan: 2023-08-28 12:41:05
ke hadapan
1353 orang telah melayarinya

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!