skyli
C++之梦
C++博客
首页
新随笔
联系
聚合
管理
随笔 - 62 文章 - 71 trackbacks - 0
<
2009年1月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(66)
acm之路(22)
C++之路(32)
php之路(10)
其它知识(2)
随笔档案
(62)
2007年8月 (2)
2007年7月 (2)
2007年5月 (1)
2007年4月 (3)
2007年3月 (1)
2007年2月 (1)
2007年1月 (2)
2006年12月 (1)
2006年11月 (2)
2006年10月 (9)
2006年9月 (2)
2006年8月 (5)
2006年6月 (4)
2006年5月 (10)
2006年4月 (9)
2006年3月 (6)
2006年1月 (2)
文章分类
(31)
生活点滴(23)
文章转载(3)
笑话转载(5)
文章档案
(31)
2006年9月 (1)
2006年8月 (2)
2006年6月 (5)
2006年5月 (12)
2006年4月 (6)
2006年3月 (2)
2006年1月 (3)
友情链接
&豪's Blog
Asp's Blog
Chgsh's Blog
My CSDNBlog
Sempr's Blog
XLQ's Blog
校内网
最新随笔
1. pow函数的性能测试
2. 一道算法题引发的动态内存管理的思考
3. 再谈子集树
4. 位运算求子集树
5. 筛法求素数
积分与排名
积分 - 41485
排名 - 64
最新评论
1. re: 数组最大长度问题
超过1M 具体1024*1000差不多。应该在堆中或进程数据区分配。
按照这个原理,全局变量在进程数据区,所以不会出错。
局部变量的话使用new在堆中分配。
--helloworld
2. re: 我的动态规划启蒙题
祝贺!我也刚刚看懂,但是加上“一条路径”的输出就更好了。是吧
--东·德
3. re: 我的留言本
评论内容较长,点击标题查看
--黄小姐
4. re: itoa函数
怎么第二个函数无法编译呢。?
int n = atoi(itoa(num, str, 2));
n是不是还是应该是当初num 10 的值啊
--sheena
5. re: 最大匹配匈牙利算法
编程风格很好啊。
--Linzertorte
阅读排行榜
1. itoa函数(15295)
2. 测试程序运行时间(2105)
3. 数组最大长度问题(1479)
4. istringstream用法(1336)
5. 字符串hash函数(1196)
评论排行榜
1. 关于语句作用域(7)
2. 测试程序运行时间(7)
3. itoa函数(7)
4. 数组最大长度问题(5)
5. 如何创建二维数组?(5)
如何创建二维数组?
有时需要创建n*n的二维数组。
于是我就用如下代码:
int ** a=new int * [n]; //或 int *(* a)=new int * [n];
for(int i=0;i<n;i++)a[i]=new int [n];
不知有没有更好的办法?
posted on 2006-04-05 01:10
beyonlin
阅读(410)
评论(5)
编辑
收藏
引用
所属分类:
C++之路
FeedBack:
#
re: 如何创建二维数组? 2006-04-05 14:35
芋头
@int* a = new int[n * n];
@for (int i=0; i<n; ++i)
@ for (int j=0; j<n; ++j)
@ a[i*n + j] = i*n + j;
回复
更多评论
#
re: 如何创建二维数组? 2006-04-06 01:02
beyonlin
@芋头
这位大哥,你误解我的意思了。
我是要创建形如a[n][n]的二维数组,
而不是a[n*n]的一维数组。
回复
更多评论
#
re: 如何创建二维数组? 2006-04-10 09:04
新新
int (*p)[4]=new int[3][4];
p[0][0]=20;
p[2][3]=30;
回复
更多评论
#
re: 如何创建二维数组? 2006-04-10 11:00
小明
基本上没有更好的方法了吧
但是,可以对你的方法改进一下,避免多次new,可能会提高效率,而且很容易对整个数组进行初始化。
int *p =new int[n*n];
int **pp = new int*[n];
for(int i=0;i<n;++i)
{
pp[i] =&p[i*n];
}
//初始化
memset(p,0,sizeof(int)*n*n);
回复
更多评论
#
re: 如何创建二维数组?
2006-05-02 19:22
snnn
2006-04-10 09:04 by 新新
int (*p)[4]=new int[3][4];
p[0][0]=20;
p[2][3]=30;
补充一句,最后用delete[] p来释放,尽管p是一个指针而不是数组。
回复
更多评论
刷新评论列表
标题
姓名
主页
验证码
*
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
一道算法题引发的动态内存管理的思考
再谈子集树
位运算求子集树
字符串hash函数
优先队列用法
计数排序
《C++ Primer》之读书笔记七
插入排序泛型算法
《C++ Primer》之读书笔记六
《C++ Primer》之读书笔记五
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理