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

C / C ++のメモリリークとは何ですか?


メモリリークは、プログラマーによって以前に割り当てられたメモリの一部が発生したときに発生します。次に、プログラマーによって適切に割り当てが解除されません。そのメモリはプログラムによって使用されなくなりました。そのため、その場所は理由もなく予約されています。これがメモリリークと呼ばれる理由です。

メモリリークの場合、メモリの一部のブロックが無駄になっている可能性があります。システムに十分なメモリがある場合、その場合もパフォーマンスが低下する可能性があります。

void my_func() {
   int *data = new int;
   *data = 50;
}

ここでの問題は、*データポインタが削除されないため、メモリが無駄になることです。

#include <stdio.h>
main(void) {
   auto int my_fun();
   my_fun();
   printf("Main Function\n");
   int my_fun() {
      printf("my_fun function\n");
   }
   printf("Done");
}

出力

my_fun function
Main Function
Done

  1. C / C ++での型キャストとは何ですか?

    型キャストは、変数をあるデータ型から別のデータ型に変換する方法です。たとえば、「long」値を単純な整数に格納する場合は、「cast」「long」を「int」と入力できます。 キャスト演算子を使用して、値をあるタイプから別のタイプに明示的に変換できます。 次のように- (type_name) expression キャスト演算子によって、ある整数変数を別の整数変数で除算することが浮動小数点演算として実行される次の例を考えてみます- 例 #include <stdio.h> main() {    int sum = 17, count = 5;  

  2. メモリリークとは何ですか?それを防ぐ方法は?

    メモリリークは、使用していたアプリのシステムにリソースが戻らなかった場合に発生します。タスクマネージャでメモリの使用量が増加し、PCのパフォーマンスが低下します。これは通常、PCに十分な量のRAMがなく、必要なメモリがRAM容量をはるかに超えている場合に発生します。 これは、PCで高いCPU使用率を取得することに似ています。原因も複数ある可能性があるため、これは複数の方法で防ぐことができます。 これは複数の方法で修正でき、CPU使用率が高くなるほど深刻ではありません。これは、PCを再起動し、特定のアプリを閉じ、特定のサービスを無効にすることで修正できます。 PCを再起動します: これ