| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 971 人关注过本帖
标题:初学C语言,关于用C语言实现动态数组求解惑
取消只看楼主 加入收藏
CodeSuperHer
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-5-27
收藏
 问题点数:0 回复次数:0 
初学C语言,关于用C语言实现动态数组求解惑
程序代码:
        intArray iArray;
    intArray *pArray = &iArray;
    for (int32_t i = 0; i < time; i++)
    {
        intArray_add(pArray, i);
    }
        

这种使用结构体的方式测试时间为78ms,
        
程序代码:
        intArray* iArray = malloc(sizeof(intArray));
    for (int32_t i = 0; i < time; i++)
    {
        intArray_add(iArray, i);
    }
        

而这种使用方式测试时间为 93ms,为什么差距这么大?

另外还有这个add方法还可以优化不?,我和c#的List<T>.add 分别执行了一百万次,c#时间是23ms,但是我自己实现的时间为78ms
      
程序代码:
        void intArray_capacity(intArray *iArray) {
        if (iArray->length >= iArray->capacity) {
        iArray->capacity *= 2;
        iArray->data = (int32_t *)realloc(iArray->data, sizeof(int32_t)* iArray->capacity);
        }
        }

        void intArray_add(intArray *iArray, int32_t data) {
            intArray_capacity(iArray);
        iArray->data[iArray->length++] = data;
        }
    
搜索更多相关主题的帖子: C语言 结构体 动态 
2015-05-27 02:40
快速回复:初学C语言,关于用C语言实现动态数组求解惑
数据加载中...
 
   



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

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