malloc () free () 之笔记

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



int main()
{   char *arr;
    int n;
    int i;


    scanf ("%d",&n);
    getchar();                                    //收入回车符;

    arr= (char*)malloc(n*sizeof(char)); //malloc 括号里是以字节为单位,填字节数;

                                                                       //sizeof(char)类型的计算方式是防止不同编译器定义int的字符不同



    for(i=0;i<n;i++)


    scanf ("%c",&arr[i]);






    for(i=n-1;i>=0;i--)
        printf("%c",arr[i]);


    free(arr);  //free 要填原来的首地址 arr。


    return 0;
}
*/


/*
int main () //计算电脑内存算法
{


    int *arr;
    int c=0;


    while ( arr=malloc(100*1024*1024))   //申请成功返回 1,不成功返回0或 NULL  (NULL 也是一种指针类型)
    {
        c++;
    }
  free(arr);
    printf ("%d",c);






}
*/
/*
int main () //用 malloc()良好用法习惯


{
    int *p=0; 在开始用之前给 p 赋0值,保证free时返回原来地址0;-|
                                                                                                  |
    p=malloc(1024);                                                                      | 
    p++;                                                                                       |
                                                                                                   |
    free(p);   <--------------------------------------------------------|           





}*/




/*  总结
  1.malloc申请单位是以字节为单位;
  2.malloc 的返回类型是 void类型;需要转换为自己需要的类型(通常和上边的一样)



*/

猜你喜欢

转载自blog.csdn.net/qq_41199502/article/details/79190609