zoukankan      html  css  js  c++  java
  • 有了malloc/free 为什么还要new/delete ?

    有了malloc/free 为什么还要new/delete ?

    malloc 与 free 是 C++/C 语言的标准库函数,new/delete 是 C++的运算符。它们都可 用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的要求。

    对象 在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。

    由于 malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数 和析构函数的任务强加于 malloc/free。

    因此 C++语言需要一个能完成动态内存分配和初始化工作的运算符 new,以及一个 能完成清理与释放内存工作的运算符 delete。注意 new/delete 不是库函数。

     1 #include <iostream>
     2 
     3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
     4 using namespace std;
     5 int main(int argc, char** argv) {
     6     //声明字符数组和变量
     7     char str[6];
     8     int i;
     9 
    10     //从键盘上输入字符串
    11     cout<<"str=";
    12     cin>>str; 
    13     cout<<str<<endl;
    14     
    15     //按数组和下标变量两种方式显示字符数组
    16     cout<<str<<endl;
    17     for (i=0;i<6;i++)
    18         cout<<str[i];
    19     cout<<endl;
    20 
    21     //字符串反向输出
    22     for (i=5;i>=0;i--) 
    23          cout<<str[i];
    24     cout<<endl;
    25 
    26     //将字符数组变成大写字母后输出 
    27     for (i=0;i<=5;i++)
    28        str[i]-=32;          //小写字母转换成大写字母
    29     cout<<str<<endl;        //显示字符串
    30     return 0;
    31 }
  • 相关阅读:
    如何在Power BI Desktop中呈现D3.js自定义图表
    在Power BI中动态嵌入网页
    Querying SQL Server Agent Job Information
    shell 切换当前路径到脚本所在路径
    洛谷 P1220 关路灯
    P7077 函数调用(CSP-S2020 T3)
    P7075 儒略日(2020CSP-S T1)
    2020CSP-S 复赛总结
    洛谷 P1886 滑动窗口 /【模板】单调队列
    洛谷P5656 【模板】二元一次不定方程(exgcd)
  • 原文地址:https://www.cnblogs.com/borter/p/9406451.html
Copyright © 2011-2022 走看看