| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1620 人关注过本帖
标题:各位大虾请帮忙 在线等答案
只看楼主 加入收藏
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
我的array是一个两用数组,结构如下:
array:[.........][[....][....][....]...]
       索引部分   实际二维数组
索引部分是一个int的指针数组,指向后面二维数组的每个行数组,这样,如果一个函数需要int**作为参数,就可以直接把array传给他。
实际的二维数组是真正的二维数组,其内存布局和C内置的二维数组完全一样,所以如果一个函数需要int arr[][COLS]作参数,可以直接传给他(int(*)[COLS])&array[m]。
而且,如果你的函数只接受一维数组,那么也可以直接把后面的二维数组传给它,让它自己做变换:(int*)&array[m]。
换言之,这种方法申请的动态二维数组,适合任何需要使用二维数组的情况。唯一的缺点是因为需要索引部分,所以占内存可能大些,不过这是和传统的分配方法占内存一样大的。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-10 00:32
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
缺点在于,这个二维数组很难再动态扩展了,如果需要这种扩展能力,请看这里:
http://c-faq-chn.

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-10 00:37
flydream0
Rank: 1
等 级:新手上路
帖 子:20
专家分:7
注 册:2008-10-10
收藏
得分:0 
#include <stdio.h>
#include <string.h>

int main(void)
{
    char *str = "123456789";
    int  intlen = strlen(str);
    char *chrstart,*chrtemp;

    for (chrstart=str;intlen>0;intlen-=2)
    {
        for (chrtemp=chrstart;chrtemp-chrstart<intlen;chrtemp++)
        {
            printf("%c",*chrtemp);
        }    
        chrstart++;
        printf("\n");
    }
    return 0;
}

最后一道题
2008-10-10 06:07
快速回复:各位大虾请帮忙 在线等答案
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047717 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved