赞
踩
测试时经验总结:
1.数组长度超过1百万,不能存储在栈上,容易内存溢出。存为全局变量,存在堆上;
内存分为栈内存,堆内存,全局区,常量区,代码区。
栈内存存储的都是局部变量。由操作系统管理,程序一旦离开作用域,就会释放变量。栈的大小有限制,常见的是1M或2M大小,因此非常容易超出;
堆内存存储的是对象,凡是new建立的都在堆中,堆内的数据由用户释放。堆的大小基本无限制,但得注意释放内存。
全局区存储的是全局变量和静态变量。
2.内存直接操作,是比赋值快的,使用循环的方式赋值,速度显著的慢;
函数有memcpy(),memmove(),memset()
void *memcpy(void *dst,void const *src,size_t length)
void *memmove(void *dst,void const *src,size_t length),效率慢于memcpy,但可以处理拷贝的两端内存重叠的问题。
void *memset(void *a,int ch,size_t length),把从a开始的length个字节设置成字符值ch,可以初始化字符数组。
结果显示,操作内存也没快多少,快了1ms左右。
1.数组快速初始化方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。