C言語/ C ++でのポインターの動的初期化と解放

注意:ポインタを使用するときに犯す最も簡単な間違いは、初期化せずに直接操作することです!

1.ポインタの初期化/解放

1)ポインタがメモリユニットを指している

      i)c言語:

char  *ch = (char*)malloc(sizeof(char));

free(ch);

   ii)c ++

char *ch = new ch;

delete ch;

2)ポインタが1次元配列を指している

    i)c言語:

    int N,*p;     
    scanf("%d",&N); 
    p = (int *) malloc(N * sizeof(int)); 
    for(int i = 0; i < N; i++) 
    { 
        scanf("%d",(p+i)); 
    }

     free(p);

  ii)c ++

    int N,*p;     
    cin>>N; 
    p = new int [N]; 
    for(int i = 0; i < N; i++) 
    { 
        cin>>*(p+i); 
    }

     delete [] p;

3)2次元配列を指す

原理:作成するときは、外側のレイヤーから内側のレイヤーに、レイヤーごとに作成します。リリースするときは、内側のレイヤーから外側のレイヤーに、レイヤーごとにリリースします。

 

記事https://blog.csdn.net/zhanshen112/article/details/80758850を参照して ください

https://blog.csdn.net/qq_41822235/article/details/81142107

 

おすすめ

転載: blog.csdn.net/modi000/article/details/113847812