社区
C语言
帖子详情
一个关于效率的问题
free131
2005-03-17 09:09:32
为一个二维数组的每一位赋值,我们一般这样做:
int a[1000][1000];
for(int i = 0; i < 1000; i++)
for(int j = 0; j <1000; j++)
a[i][j] = 10;
有没有效率更高的赋值方法呢,请教.............
...全文
184
8
打赏
收藏
一个关于效率的问题
为一个二维数组的每一位赋值,我们一般这样做: int a[1000][1000]; for(int i = 0; i < 1000; i++) for(int j = 0; j <1000; j++) a[i][j] = 10; 有没有效率更高的赋值方法呢,请教.............
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suyouxin
2005-03-18
打赏
举报
回复
放到静态区去
suyouxin
2005-03-18
打赏
举报
回复
int a[1000][1000];
memset(a, 0x00, sizeof(a));
char *p = (char*)a;
for (int i = 0; i < 250000 ; i++) {
p += sizeof(int)/sizeof(char);
*p = 10;
}
原来的1/4哈
还有,没这么大的栈
suyouxin
2005-03-18
打赏
举报
回复
汗,看成char了
gameboy007
2005-03-18
打赏
举报
回复
union fmt {
__int64 b;
int a[2];
};
fmt tmp;
tmp.a[0] = tmp.a[1] = 10;
int a[1000][1000];
fmt* begin = (fmt*)a;
fmt* end = begin + 500000; // 1000 * 1000 / 2
while (begin != end)
{
*begin++ = tmp;
}
free131
2005-03-17
打赏
举报
回复
应该还有更好的方法吧,持续等待中...............
pcboyxhy
2005-03-17
打赏
举报
回复
memset(a, 10, sizeof(a));
是按照字节的
不能这样初始化。
hardeggwang
2005-03-17
打赏
举报
回复
int a[1000][1000]={0};
//1000*1000的数组恐怕在运行的时候会造成问题吧,有这么大的堆栈么?
这样做的结果是所有的这个数组的所有元素都是0
但int a[1000][1000]={10}只能使第一个元素为10,其余还是为0
可以以后应用的时候,每个元素加10,相当于现在的赋值为10
不知道这能否满足你的需要
suyouxin
2005-03-17
打赏
举报
回复
memset(a, 10, sizeof(a));
Linux下LDAP Server/Client配置 --OpenLDAP
OpenLDAP 在Linux上的配置与使用
在CentOS 6.5上安装OpenLDAP并配置LDAP方式用户登录
在CentOS 6.5上安装OpenLDAP并配置LDAP方式用户登录
Centos 安装openLDAP、配置客户端 、安装管理工具LDAP Admin
centos 安装openLDAP
GitLab集成LDAP登录并解决OpenLDAP的memberOf
问题
LDAP是Light weight Directory Access Protocol(轻量级目录访问协议)的缩写,其前身是更为古老的DAP协议。该文章的亮点(也是写这篇文章的主要目的)是解决了 OpenLDAP(我使用的版本号为2.4.*)加载memberof模块,并通过groupOfNames和memberOf实现分组认证的功能。
LDAP入门宝典(上):协议、结构与OpenLDAP实战部署
LDAP入门宝典(上):协议、结构与OpenLDAP实战部署!
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章