FlyKu-------------咔咔通

Welcome to my blog. Hope you enjoy your stay here!

c++中多维数组动态分配

怎样给多维数组动态分配内存

//Allocate:
int **p = new int* [m];
for(int i = 0 ; i < m ; i++)
p[i] = new int[n];
//Use:
for(int i = 0 ; i < m; i++)
for(int j = 0 ; j < n ; j++)
p[i][j] = i * j;
//Free:
for(int i = 0 ; i < m ; i++)
delete[] p[i];
delete[] p;

1. 演示形为int[2][3]的二维动态数组
///////////////////////////////////////////////////////////////////
int n1, n2;
const int DIM1 = 2;
const int DIM2 = 3;
// 构造数组
int **ppi = new int*[DIM1];
for(n1 = 0; n1 < DIM1; n1++)
{
ppi[n1] = new int[DIM2];
}
// 填充数据
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
ppi[n1][n2] = n1 * 10 + n2;
}
}
// 输出
for(n1 = 0; n1 < DIM1; n1++)
{
for(n2 = 0; n2 < DIM2; n2++)
{
afxDump << "ppi[" << n1 << "][" << n2 << "] = "
<< ppi[n1][n2] << "\n";
}
}
// 释放数组
for(n1 = 0; n1 < DIM1; n1++)
{
delete [] ppi[n1];
}
delete [] ppi;

2. 三维动态数组(int[2][3][4])

请查看全文

纯c语言实现动态分配多维数组的方法

最近在做网格任务调度算法的模拟实验的时候,需要用到比较达到数组,于是就需要学习用动态多维数组来进行内存的分配。

在网上找了些资料,好多是关于c++方面分配的,这里有一个c语言的分配方法。(转载自Fish-Bowl)

普通的动态内存分配只能分配一维的数组:
例如:
#define ARRAY_SIZE 1024 ;
unsigned char * pa = NULL ;
pa = (unsigned char *)malloc(ARRAY_SIZE) ;
然后就可以pa[1], pa[0] ...当成一维数组操作了。
释放的时候:
free(pa) ;

但是,很多情况下,我们需要动态的二维数组,乃至多维数组,例如矩阵计算,有限元分析,三维实体建模等等。那么如何利用普通的c语言,实现多维数组呐?

动态二维数组:
#define ARRAY_SIZE 20*20
//这里是20x20的矩阵
unsigned char (*matrix_1)[20] ;
matrix_1 = (unsigned char (*)[20])malloc(ARRAY_SIZE) ;
然后就可以matrix_1[0][0], matrix_1[0][1]。。。这样使用了。释放方式同一维数组。

动态的三维数组:
#define ARRAY_SIZE 5*32*32
//定义了5桢,每桢是32x32的矩阵
unsigned char (*frame)[32][32] ;
frame = (unsigned char (*)[32][32])malloc(ARRAY_SIZE) ;
然后就可以frame[0][0][0]之类的直接使用了,释放方法同上。

这样可以用普通的指针,利用可扩展的宏标记,实现对矩阵算法的封装了。

c++的动态分配内存看下一篇文章

J2ee 开发工具网址集合(陆续添加中)

到新的机器上开发的时候总是缺少相应的工具,每次都需要在google上搜索开发工具的网址,再一个一个下载,很烦。

于是收集了J2EE的工具网址,方便大家一次性下载!

eclipse-SDK-3.3.1.1-win32.zip

Eclipse ResourceBundle Editor

MyEclipse Enterprise Workbench 6.0.1GA

mysql

MySQL Connector/J

tomcat 6.0

 

 

Grub配置详解

grub(Grand Unified Boot Loader)启动引导器

与grub相似软件比较
BM:安装多操作系统软件,必须把两个操作系统安装在主分区,硬盘最多可以分4个主分区。
LILO:以前linux系统启动常用是启动程序,缺点是在1024柱以后安装linux就不好用了,1024柱大约是8.4G.

为什么要使用Loader呢?
Windows和Linux的文件格式是不同的,那么计算机在启动的时候是怎么知道装在硬盘里的系统,就由Loader来解决这个问题。

/boot/grub/grub.conf:主文件,改grub配置文件,最好直接改该文件。
grub有两个链接文件:/etc/gurb/grub.conf;/boot/grub/menu.lst

安装grub启动程序
1、#rpm -q grub //查询结果显示当前是否安装了grub
2、#rpm ivh 软件包名 //
3、先进入BIOS设置计算机启动顺序,第一启动设置为CD-ROM(光驱启动),然后保存退出。
4、启动计算机并把Linux光盘插入光驱里。
5、启动光盘后,按F5键(启动)linux rescue(linux拯救模式)
6、#chroot /mnt/sysimage //把当前的根分区挂载到sysimage(进入此目录相当于进入系统根目录)
chroot(插入root):把这个目录指定为根(把根挂载到指的目录)
7、#grub-install /dev/hda
8、#exit //退出系统会自动重启
(还有更多配置信息,点标题进入查看)

java编程资料

一直在学习JAVA,但是有时没有太多的时间坐下来看书,所以经常抽时间看看

电子书,于是找到一些电子书,拿出来跟大家共享~!(陆续会添加的~~)

java编程思想3 电子书

java编程思想3 课后练习答案

jdk中文文档

hibernate 参考指南

Spring Framework 中文参考手册 2.0

JavaTM2 5.0 API规范CHM

Java2核心技术第6版卷1基础知识(一)

Java2核心技术第6版卷1基础知识(二)

think in java enterprise 英文版
分页:[<<][1][>>]

日历

<< 2010·1 >>

Sun

Mon

Tue

Wen

Thu

Fri

Sat

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

Powered By Z-Blog 1.6 Final Build 60816

Copyright FlyKu WebSite. Some Rights Reserved.