动态创建多维数组

数组的动态内存分配
假设我们要为一个字符数组(一个有 20 个字符的字符串)分配内存,我们可以使用上面实例中的语法来为数组动态地分配内存,如下所示:
char* pvalue  = NULL;   // 初始化为 null 的指针
pvalue  = new char[20]; // 为变量请求内存
要删除我们刚才创建的数组,语句如下:
delete [] pvalue;        // 删除 pvalue 所指向的数组
下面是 new 操作符的通用语法,可以为多维数组分配内存,如下所示:
一维数组
// 动态分配,数组长度为 m
int *array=new int [m];
 
//释放内存
delete [] array;
二维数组
int **array
// 假定数组第一维长度为 m, 第二维长度为 n
// 动态分配空间
array = new int *[m];
for( int i=0; i<m; i++ )
{
    array[i] = new int [n]  ;
}
//释放
for( int i=0; i<m; i++ )
{
    delete [] arrar[i];
}
delete array;
二维数组实例测试:
实例
#include <iostream>
using namespace std;
 
int main()
{
    int **p;   
    int i,j;   //p[4][8] 
    //开始分配4行8列的二维数据   
    p = new int *[4];
    for(i=0;i<4;i++){
        p[i]=new int [8];
    }
 
    for(i=0; i<4; i++){
        for(j=0; j<8; j++){
            p[i][j] = j*i;
        }
    }   
    //打印数据   
    for(i=0; i<4; i++){
        for(j=0; j<8; j++)     
        {   
            if(j==0) cout<<endl;   
            cout<<p[i][j]<<"\t";   
        }
    }   
    //开始释放申请的堆   
    for(i=0; i<4; i++){
        delete [] p[i];   
    }
    delete [] p;   
    return 0;
}
三维数组
int ***array;
// 假定数组第一维为 m, 第二维为 n, 第三维为h
// 动态分配空间
array = new int **[m];
for( int i=0; i<m; i++ )
{
    array[i] = new int *[n];
    for( int j=0; j<n; j++ )
    {
        array[i][j] = new int [h];
    }
}
//释放
for( int i=0; i<m; i++ )
{
    for( int j=0; j<n; j++ )
    {
        delete array[i][j];
    }
    delete array[i];
}
delete array;
三维数组测试实例:
实例
#include <iostream>
using namespace std;
 
int main()
{   
    int i,j,k;   // p[2][3][4]
    
    int ***p;
    p = new int **[2]; 
    for(i=0; i<2; i++) 
    { 
        p[i]=new int *[3]; 
        for(j=0; j<3; j++) 
            p[i][j]=new int[4]; 
    }
    
    //输出 p[i][j][k] 三维数据
    for(i=0; i<2; i++)   
    {
        for(j=0; j<3; j++)   
        { 
            for(k=0;k<4;k++)
            { 
                p[i][j][k]=i+j+k;
                cout<<p[i][j][k]<<" ";
            }
            cout<<endl;
        }
        cout<<endl;
    }
    
    // 释放内存
    for(i=0; i<2; i++) 
    {
        for(j=0; j<3; j++) 
        {   
            delete [] p[i][j];   
        }   
    }       
    for(i=0; i<2; i++)   
    {       
        delete [] p[i];   
    }   
    delete [] p;  
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DTrace是一个用于SolarisTM操作系统的全面的动态跟踪框架。DTrace提供一个强大的基础结构,使管理员、开发者和服务人员能简明地回答有关操作系统和用户程序行为的任意问题。《Solaris动态跟踪指南》介绍如何使用DTrace观察、调试和调优系统行为。本书还包含一套完整的关于捆绑的DTrace观察工具和D编程语言的参考资料。 目录 前言........................................................................................................................................................21 1 简介........................................................................................................................................................25 入门 ....................................................................................................................................................... 25 提供器和探测器 ................................................................................................................................. 27 编译和检测过程 ................................................................................................................................. 29 变量和算术表达式 ............................................................................................................................ 30 谓词 ....................................................................................................................................................... 33 输出格式化.......................................................................................................................................... 36 数组 ....................................................................................................................................................... 39 外部符号和类型 ................................................................................................................................. 41 2 类型、运算符和表达式.....................................................................................................................43 标识符名称和关键字 ........................................................................................................................ 43 数据类型和大小 ................................................................................................................................. 44 常量 ....................................................................................................................................................... 46 算术运算符.......................................................................................................................................... 47 关系运算符.......................................................................................................................................... 48 逻辑运算符.......................................................................................................................................... 48 按位运算符.......................................................................................................................................... 49 赋值运算符.......................................................................................................................................... 50 递增和递减运算符 ............................................................................................................................ 51 条件表达式.......................................................................................................................................... 51 类型转换 .............................................................................................................................................. 52 优先级 .................................................................................................................................................. 53 3 3 变量........................................................................................................................................................55 标量变量 .............................................................................................................................................. 55 关联数组 .............................................................................................................................................. 56 线程局部变量 ..................................................................................................................................... 57 子句局部变量 ..................................................................................................................................... 60 内置变量 .............................................................................................................................................. 62 外部变量 .............................................................................................................................................. 64 4 D程序结构 ...........................................................................................................................................67 探测器子句和声明 ............................................................................................................................ 67 探测器说明.......................................................................................................................................... 68 谓词 ....................................................................................................................................................... 69 操作 ....................................................................................................................................................... 69 C预处理程序的用法 ......................................................................................................................... 69 5 指针和数组...........................................................................................................................................71 指针和地址.......................................................................................................................................... 71 指针安全 .............................................................................................................................................. 72 数组声明和存储 ................................................................................................................................. 73 指针和数组关系 ................................................................................................................................. 74 指针运算 .............................................................................................................................................. 75 通用指针 .............................................................................................................................................. 76 多维数组 .............................................................................................................................................. 76 指向DTrace对象的指针 .................................................................................................................. 77 指针和地址空间 ................................................................................................................................. 77 6 字符串 ...................................................................................................................................................79 字符串表示.......................................................................................................................................... 79 字符串常量.......................................................................................................................................... 80 字符串赋值.......................................................................................................................................... 80 字符串转换.......................................................................................................................................... 80 字符串比较.......................................................................................................................................... 81 目录 Solaris动态跟踪指南 • 2008年10月 4 7 结构和联合...........................................................................................................................................83 结构 ....................................................................................................................................................... 83 结构指针 .............................................................................................................................................. 85 联合 ....................................................................................................................................................... 89 成员大小和偏移 ................................................................................................................................. 92 位字段 .................................................................................................................................................. 92 8 类型和常量定义 ..................................................................................................................................95 Typedef ................................................................................................................................................. 95 枚举 ....................................................................................................................................................... 96 内置 ....................................................................................................................................................... 97 类型名称空间 ..................................................................................................................................... 98 9 聚合..................................................................................................................................................... 101 聚合函数 ............................................................................................................................................101 聚合 .....................................................................................................................................................102 列显聚合 ............................................................................................................................................109 数据标准化........................................................................................................................................109 清除聚合 ............................................................................................................................................113 截断聚合 ............................................................................................................................................114 最小化删除........................................................................................................................................115 10 操作和子例程 ................................................................................................................................... 117 操作 .....................................................................................................................................................117 缺省操作 ............................................................................................................................................117 数据记录操作 ...................................................................................................................................118 trace() .......................................................................................................................................118 tracemem() .................................................................................................................................119 printf() .....................................................................................................................................119 printa() .....................................................................................................................................119 stack() .......................................................................................................................................119 ustack() .....................................................................................................................................121 jstack() .....................................................................................................................................125 破坏性操作........................................................................................................................................125 目录 5 处理破坏性操作 .......................................................................................................................125 内核破坏性操作 .......................................................................................................................128 特殊操作 ............................................................................................................................................131 推理操作 ....................................................................................................................................131 exit() .........................................................................................................................................131 子例程 ................................................................................................................................................131 alloca() .....................................................................................................................................131 basename() .................................................................................................................................131 bcopy() .......................................................................................................................................132 cleanpath() ...............................................................................................................................132 copyin() .....................................................................................................................................132 copyinstr() ...............................................................................................................................132 copyinto() .................................................................................................................................133 dirname() ...................................................................................................................................133 msgdsize() .................................................................................................................................133 msgsize() ...................................................................................................................................133 mutex_owned() ...........................................................................................................................133 mutex_owner() ...........................................................................................................................134 mutex_type_adaptive() ..........................................................................................................134 progenyof() ...............................................................................................................................134 rand() .........................................................................................................................................134 rw_iswriter() ...........................................................................................................................135 rw_write_held() ......................................................................................................................135 speculation() ...........................................................................................................................135 strjoin() ...................................................................................................................................135 strlen() .....................................................................................................................................135 11 缓冲区和缓冲 ................................................................................................................................... 137 主体缓冲区........................................................................................................................................137 主体缓冲区策略 ...............................................................................................................................137 switch策略 ................................................................................................................................138 fill策略 ....................................................................................................................................138 ring策略 ....................................................................................................................................139 其他缓冲区........................................................................................................................................140 缓冲区大小........................................................................................................................................140 目录 Solaris动态跟踪指南 • 2008年10月 6 缓冲区调整大小策略 ......................................................................................................................140 12 输出格式化........................................................................................................................................ 143 printf() .............................................................................................................................................143 转换规范 ....................................................................................................................................144 标志说明符 ................................................................................................................................144 宽度和精度说明符 ...................................................................................................................145 大小前缀 ....................................................................................................................................145 转换格式 ....................................................................................................................................146 printa() .............................................................................................................................................147 trace()缺省格式 ............................................................................................................................149 13 推理跟踪 ............................................................................................................................................ 151 推理接口 ............................................................................................................................................151 创建推理 ............................................................................................................................................152 使用推理 ............................................................................................................................................152 提交推理 ............................................................................................................................................153 放弃推理 ............................................................................................................................................153 推理示例 ............................................................................................................................................154 推理选项和调整 ...............................................................................................................................158 14 dtrace(1M)实用程序 .......................................................................................................................161 说明 .....................................................................................................................................................161 选项 .....................................................................................................................................................161 操作数 ................................................................................................................................................166 退出状态 ............................................................................................................................................166 15 脚本..................................................................................................................................................... 167 解释程序文件 ...................................................................................................................................167 宏变量 ................................................................................................................................................168 宏参数 ................................................................................................................................................170 目标进程ID ......................................................................................................................................171 目录 7 16 选项和可调参数 ............................................................................................................................... 173 使用者选项........................................................................................................................................173 修改选项 ............................................................................................................................................175 17 dtrace提供器 ....................................................................................................................................177 BEGIN探测器 .....................................................................................................................................177 END探测器 .........................................................................................................................................178 ERROR探测器 .....................................................................................................................................178 稳定性 ................................................................................................................................................180 18 lockstat提供器................................................................................................................................181 概述 .....................................................................................................................................................181 自适应锁定探测器 ..........................................................................................................................181 旋转锁定探测器 ...............................................................................................................................182 线程锁定 ............................................................................................................................................183 读取器/写入器锁定探测器 ............................................................................................................183 稳定性 ................................................................................................................................................184 19 profile提供器 ..................................................................................................................................185 profile-n探测器 ............................................................................................................................185 tick-n探测器 ...................................................................................................................................188 参数 .....................................................................................................................................................188 计时器分辨率 ...................................................................................................................................188 探测器创建........................................................................................................................................190 稳定性 ................................................................................................................................................190 20 fbt提供器 ..........................................................................................................................................191 探测器 ................................................................................................................................................191 探测器参数........................................................................................................................................192 entry探测器 .............................................................................................................................192 return探测器 ...........................................................................................................................192 示例 .....................................................................................................................................................192 尾部调用优化 ...................................................................................................................................198 汇编函数 ............................................................................................................................................200 目录 Solaris动态跟踪指南 • 2008年10月 8 指令集限制........................................................................................................................................200 x86限制 ......................................................................................................................................200 SPARC限制................................................................................................................................200 断点交互 ............................................................................................................................................200 模块装入 ............................................................................................................................................201 稳定性 ................................................................................................................................................201 21 syscall提供器 ..................................................................................................................................203 探测器 ................................................................................................................................................203 系统调用记时错误 ...................................................................................................................203 子编码的系统调用 ...................................................................................................................203 大文件系统调用 .......................................................................................................................204 专用系统调用 ............................................................................................................................204 参数 .....................................................................................................................................................205 稳定性 ................................................................................................................................................205 22 sdt提供器 ..........................................................................................................................................207 探测器 ................................................................................................................................................207 示例 .....................................................................................................................................................208 创建SDT探测器 ..............................................................................................................................212 声明探测器 ................................................................................................................................212 探测器参数 ................................................................................................................................212 稳定性 ................................................................................................................................................212 23 sysinfo提供器 ..................................................................................................................................215 探测器 ................................................................................................................................................215 参数 .....................................................................................................................................................217 示例 .....................................................................................................................................................219 稳定性 ................................................................................................................................................221 24 vminfo提供器 ....................................................................................................................................223 探测器 ................................................................................................................................................223 参数 .....................................................................................................................................................225 示例 .....................................................................................................................................................225 目录 9 稳定性 ................................................................................................................................................229 25 proc提供器 ........................................................................................................................................231 探测器 ................................................................................................................................................231 参数 .....................................................................................................................................................233 lwpsinfo_t .................................................................................................................................233 psinfo_t .....................................................................................................................................236 示例 .....................................................................................................................................................237 exec..............................................................................................................................................237 start和exit .............................................................................................................................238 lwp-start和lwp-exit ............................................................................................................240 signal-send ...............................................................................................................................242 稳定性 ................................................................................................................................................243 26 sched提供器 ......................................................................................................................................245 探测器 ................................................................................................................................................245 参数 .....................................................................................................................................................247 cpuinfo_t ...................................................................................................................................248 示例 .....................................................................................................................................................248 on-cpu和off-cpu .....................................................................................................................248 enqueue和dequeue ..................................................................................................................256 sleep和wakeup .........................................................................................................................262 preempt、remain-cpu ..............................................................................................................270 change-pri .................................................................................................................................272 tick..............................................................................................................................................274 稳定性 ................................................................................................................................................276 27 io提供器 ............................................................................................................................................277 探测器 ................................................................................................................................................277 参数 .....................................................................................................................................................278 bufinfo_t结构 .........................................................................................................................278 devinfo_t ...................................................................................................................................280 fileinfo_t .................................................................................................................................280 示例 .....................................................................................................................................................281 目录 Solaris动态跟踪指南 • 2008年10月 10 稳定性 ................................................................................................................................................293 28 mib提供器 ..........................................................................................................................................295 探测器 ................................................................................................................................................295 参数 .....................................................................................................................................................307 稳定性 ................................................................................................................................................307 29 fpuinfo提供器 ..................................................................................................................................309 探测器 ................................................................................................................................................309 参数 .....................................................................................................................................................311 稳定性 ................................................................................................................................................311 30 pid提供器 ..........................................................................................................................................313 命名pid探测器 ................................................................................................................................313 函数边界探测器 ...............................................................................................................................314 entry探测器 .............................................................................................................................314 return探测器 ...........................................................................................................................315 函数偏移探测器 ...............................................................................................................................315 稳定性 ................................................................................................................................................315 31 plockstat提供器..............................................................................................................................317 概述 .....................................................................................................................................................317 互斥探测器........................................................................................................................................318 读取器/写入器锁定探测器 ............................................................................................................318 稳定性 ................................................................................................................................................319 32 fasttrap提供器................................................................................................................................321 探测器 ................................................................................................................................................321 稳定性 ................................................................................................................................................321 33 用户进程跟踪 ................................................................................................................................... 323 copyin()和copyinstr()子例程 .................................................................................................323 避免错误 ....................................................................................................................................324 目录 11 消除dtrace(1M)干扰 .....................................................................................................................325 syscall提供器 .................................................................................................................................325 ustack()操作 ...................................................................................................................................326 uregs[]数组 .....................................................................................................................................328 pid提供器 .........................................................................................................................................330 用户函数边界跟踪 ...................................................................................................................330 跟踪任意指令 ............................................................................................................................332 34 为用户应用程序静态定义跟踪 .................................................................................................... 335 选择探测器位置 ...............................................................................................................................335 向应用程序中添加探测器 .............................................................................................................336 定义提供器和探测器...............................................................................................................336 向应用程序代码中添加探测器 .............................................................................................337 生成包含探测器的应用程序 .................................................................................................337 35 安全性 ................................................................................................................................................ 339 权限 .....................................................................................................................................................339 使用DTrace的权限 .........................................................................................................................340 dtrace_proc权限 .............................................................................................................................340 dtrace_user权限 .............................................................................................................................341 dtrace_kernel权限 ........................................................................................................................342 超级用户权限 ...................................................................................................................................342 36 匿名跟踪 ............................................................................................................................................ 343 匿名启用 ............................................................................................................................................343 声明匿名状态 ...................................................................................................................................344 匿名跟踪示例 ...................................................................................................................................344 37 事后跟踪 ............................................................................................................................................ 349 显示DTrace使用者 .........................................................................................................................349 显示跟踪数据 ...................................................................................................................................350 38 性能注意事项 ................................................................................................................................... 353 限制已启用的探测器 ......................................................................................................................353 目录 Solaris动态跟踪指南 • 2008年10月 12 使用聚合 ............................................................................................................................................353 使用可高速缓存的谓词..................................................................................................................354 39 稳定性 ................................................................................................................................................ 357 稳定性级别........................................................................................................................................357 相关性类 ............................................................................................................................................359 接口属性 ............................................................................................................................................360 稳定性计算和报告 ..........................................................................................................................360 稳定性执行........................................................................................................................................362 40 转换器 ................................................................................................................................................ 365 转换器声明........................................................................................................................................365 转换运算符........................................................................................................................................367 进程模型转换器 ...............................................................................................................................368 稳定转换 ............................................................................................................................................368 41 版本控制 ............................................................................................................................................ 369 版本和发行版 ...................................................................................................................................369 版本控制选项 ...................................................................................................................................370 提供器版本控制 ...............................................................................................................................371

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值