C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

malloc()とfree()はC / C ++でどのように機能しますか?


malloc()

関数malloc()は、要求されたサイズのバイトを割り当てるために使用され、割り当てられたメモリの最初のバイトへのポインタを返します。失敗した場合はnullポインタを返します。

これがC言語でのmalloc()の構文です

pointer_name = (cast-type*) malloc(size);

ここで

  • pointer_name −ポインタに付けられた任意の名前。

  • キャストタイプ −malloc()によって割り当てられたメモリをキャストするデータ型。

  • サイズ −割り当てられたメモリのサイズ(バイト単位)。

これがC言語のmalloc()の例です

#include <stdio.h>
#include <stdlib.h>

int main() {
   int n = 4, i, *p, s = 0;
   p = (int*) malloc(n * sizeof(int));
   
   if(p == NULL) {
      printf("\nError! memory not allocated.");
      exit(0);
   }
   printf("\nEnter elements of array : ");

   for(i = 0; i < n; ++i) {
      scanf("%d", p + i);
      s += *(p + i);
   }
   printf("\nSum : %d", s);
   return 0;
}

出力

これが出力です

Enter elements of array : 32 23 21 8
Sum : 84

free()

関数free()は、malloc()によって割り当てられたメモリの割り当てを解除するために使用されます。ポインタの値は変更されません。つまり、同じメモリ位置を指します。

これがC言語でのfree()の構文です

void free(void *pointer_name);

ここで

  • pointer_name −ポインタに付けられた任意の名前。

これがC言語のfree()の例です

#include <stdio.h>
#include <stdlib.h>

int main() {
   int n = 4, i, *p, s = 0;
   p = (int*) malloc(n * sizeof(int));

   if(p == NULL) {
      printf("\nError! memory not allocated.");
      exit(0);
   }
   printf("\nEnter elements of array : ");

   for(i = 0; i < n; ++i) {
      scanf("%d", p + i);
      s += *(p + i);
   }
   printf("\nSum : %d", s);
   free(p);
   return 0;
}

出力

これが出力です

Enter elements of array : 32 23 21 28
Sum : 104

  1. C++で例外はどのように機能しますか

    C ++では、例外処理はランタイムエラーを処理するプロセスです。例外は、C++で実行時にスローされるイベントです。すべての例外は、std::exceptionクラスから派生します。処理可能なランタイムエラーです。例外を処理しない場合は、例外メッセージを出力してプログラムを終了します。 例外は、C ++標準では、プログラム内で使用できるクラスとして定義されています。親子クラス階層の配置を以下に示します- C++の一般的な例外クラスは-です。 Sr.No。 例外と説明 1 std ::exception これは、すべての標準C++例外の例外および親クラスです。

  2. C ++で組み合わせと順列を計算する方法は?

    組み合わせと順列は組み合わせ論の一部​​です。順列は、要素が一度に1つずつ、一度にいくつか、または一度にすべて取得される場合に、要素のセットが作成できるさまざまな配置です。組み合わせとは、要素を一度に1つずつ、一部を一度に、または一度にすべて取得する場合に、要素を選択するさまざまな方法です。 合計n個の要素があり、r個の要素を配置する必要がある場合の順列の数。 合計n個の要素があり、r個の要素を選択する必要がある場合の組み合わせの数。 C++で組み合わせと順列を計算するプログラムは次のとおりです。 例 #include <iostream> using names