博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c/c++中动态内存分配与回收与从void*类型隐式转换为int*类型
阅读量:4211 次
发布时间:2019-05-26

本文共 1352 字,大约阅读时间需要 4 分钟。

 

最常见的差异之一是,C允许从void*隐式转换到其它的指针类型,但C++不允许。下列是有效的C代码。从void*类型隐式转换为int*类型,但要使其在C和C++两者皆能运作,就需要使用显式转换。

c语言版本的:

#include 
#include
#define high 2#define row 3#define col 4 int main(){ int i, j, k; // p[2][3][4] int*** p; p = (int***)malloc(sizeof(int**) * high); for (i = 0; i < high; i++) { p[i] =(int **) malloc(sizeof(int*) * row);//new int *[3]; for (j = 0; j < row; j++) p[i][j] =(int*) malloc(sizeof(int) * col);//new int[4]; } //输出 p[i][j][k] 三维数据 for (i = 0; i < high; i++) { for (j = 0; j < row; j++) { for (k = 0; k < col; k++) { p[i][j][k] = i + j + k; printf("%d ", p[i][j][k]); } printf("\n"); } printf("\n"); } // 释放内存 for (i = 0; i < high; i++) { for (j = 0; j < row; j++) { free(p[i][j]); p[i][j] = NULL; } } for (i = 0; i < high; i++) { free(p[i]); p[i] = NULL; } free(p); p = NULL; return 0;}

 

c++版本的:

#include 
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<
<<" "; } cout<

 

转载地址:http://nmzmi.baihongyu.com/

你可能感兴趣的文章
模式分解
查看>>
数据和信息
查看>>
讲解MSSQL数据库中SQL锁机制和事务隔离级别
查看>>
Reporting Services 2: 参数化报表
查看>>
配置用于远程管理的报表服务器
查看>>
Sql2005 全文索引
查看>>
全文检索拾零
查看>>
sql server 2008全文索引干扰词示例
查看>>
SQL Server DATEDIFF() 函数
查看>>
关于使用表接收存储过程返回结果集的问题
查看>>
SQL Server数据库常用的T-SQL命令
查看>>
SQL SERVER性能优化--Tempdb相关问题
查看>>
SQL SERVER 中如何使用行锁
查看>>
SQL Server索引原则
查看>>
清理SQL Server 2008数据库日志
查看>>
索引记录数据的基本格式
查看>>
SQL SERVER性能优化--分区表
查看>>
SQL SERVER 2005数据加密
查看>>
SQL SERVER性能分析--死锁检测数据库阻塞语句
查看>>
时间格式转换函数
查看>>