c语言/c++中指针的动态初始化及释放

提醒:使用指针最容易犯得错误是,没有初始化就直接操作!!!

1、指针的初始化/释放

1)指针指向一个内存单元

      i)c语言:

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

free(ch);

   ii)c++

char *ch = new ch;

delete ch;

2)指针指向一维数组

    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)指向二维数组

原则:创建的时候从外层往里层,逐层创建;而释放的时候从里层往外层,逐层释放

参考该文 https://blog.csdn.net/zhanshen112/article/details/80758850

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

猜你喜欢

转载自blog.csdn.net/modi000/article/details/113847812