维度及长度均可任意变形的动态数组
文章平均质量分 73
飞天御剑流
....剑心,已不再是过去那个传奇中的杀人拔刀斋。手中的逆刃刀,也不再是一把剥夺敌人生存权利的武器,而是一把活人剑,能活人之剑........
展开
-
四、各函数功能介绍
下面一组函数是DDLA的基本函数: void* new_a( size_t, size_t, ... );void* new0_a( size_t, size_t, ... );void* resize_a( void*, size_t, ... );size_t sizeof_a( void* );size_t dimen_a( void* );size_t*原创 2009-08-27 23:40:00 · 2973 阅读 · 0 评论 -
一、维度及长度均可任意变形的动态数组概述
近日,有同事需要设计一个可自由变形的多维数组,苦思数日,不得其解,求助于我。于是我帮他写了一个可自由改变维度及长度的数组ADT。后来想,网上应该也有人需要这种东西吧,何不放到博客上来,让有此需要的朋友也一同来参考参考。于是就将开始的3个函数扩展为20个函数。鉴于时间仓促,源码一定有很多不完善的地方,如果遇到哪些牛人有兴趣对其进行改进,更求之不得了。 我将此ADT称为Dyna原创 2009-08-27 23:03:00 · 4026 阅读 · 6 评论 -
二、功能简单演示
以下代码为DDLA功能的简单演示,可将其后的接口头文件和实现源代码编译后运行。 #include #include "DynamicDLA.h"void func( int** );int main( void ){ int i, j, k; int **p1 = ( int** )new_a( sizeof( int ), 2, 7, 5 )原创 2009-08-27 23:19:00 · 2708 阅读 · 2 评论 -
三、接口
下面是ADT接口头文件DynamicDLA.h的内容,各函数的实现源码放在最后一部分。#define cplusplus控制在c还是c++中编译。在c++中使用时,各函数放在命名空间dynamic_dimensionality_length_array中,别名ddla。 #ifndef DYNAMICDLA_H#define DYNAMICDLA_H#ifndef原创 2009-08-27 23:32:00 · 2500 阅读 · 0 评论 -
五、实现
#include "DynamicDLA.h"#ifndef __cplusplus#include #include #else#include #include namespace dynamic_dimensionality_length_array{#endifstruct arrayinfo{ str原创 2009-08-27 23:47:00 · 2925 阅读 · 1 评论