社区
新手乐园
帖子详情
请问c语言double型的数组,能用memset初始化吗?
revenant227
2011-12-14 08:50:48
或者用什么比较方便的方法
...全文
1510
10
打赏
收藏
请问c语言double型的数组,能用memset初始化吗?
或者用什么比较方便的方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wizard_tiger
2011-12-15
打赏
举报
回复
一楼正解!
碎炎
2011-12-14
打赏
举报
回复
[Quote=引用 8 楼 revenant227 的回复:]
是不是所有变量中,只有字符串变量和指针本身的值就是内存地址,而其他的变量或者常量都是指到某快内存里的?
[/Quote]
一般的局部变量都是在栈上分配的 然后栈上可以定义个指针来指向堆 可以说给一个内存块一个标示符直接引用那块内存块 c风格字符串本身就是一个指针,memset的含义是讲由起始地址的连续size个字节设为0x00 ,你要设那块内存就必须得传入那块的起始地址,结构也一样,给memset一个struct的首地址
revenant227
2011-12-14
打赏
举报
回复
是不是所有变量中,只有字符串变量和指针本身的值就是内存地址,而其他的变量或者常量都是指到某快内存里的?
elegant87
2011-12-14
打赏
举报
回复
memset是初始化统一值的
如果不一样,需要一个循环进行操作
revenant227
2011-12-14
打赏
举报
回复
其实我知道char s[10];
memset(s,0,sizeof(s));
这样是对的。
我是想知道,为什么含有字符串的结构体要在memset时加入&,
例如memset(&struct,0,sizeof(struct));
c的结构体和字符串变量都是怎么管理的?
柯本
2011-12-14
打赏
举报
回复
memset(&char,0,sizeof(char));
要看你具体的定义
如果是char *类型的字串,是不可以的
如:char *s="11111!";
memset(s,0,sizeof(s));
s指向的是常量字串,它是不可写的
且,sizeof(s)为指针长度,它在32位下永远为4字节
char s[10];
memset(s,0,sizeof(s));
就可以了
revenant227
2011-12-14
打赏
举报
回复
[Quote=引用 1 楼 keiy 的回复:]
全部初始化为0,用memset可以,但某一特定值,只能用循环了
[/Quote]
那进一步请问,
memset(&struct,0,sizeof(struct));和memset(&char,0,sizeof(char));
为什么第二个会报错?struct是包含了字符串的结构体。char是字符串。
cbzjzsb123
2011-12-14
打赏
举报
回复
楼上正解
柯本
2011-12-14
打赏
举报
回复
全部初始化为0,用memset可以,但某一特定值,只能用循环了
memset
函数及其用法,
C语言
memset
函数详解
定义变量时一定要进行
初始化
,尤其是
数组
和结构体这种占用内存大的数据结构。在使用
数组
的时候经常因为没有
初始化
而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。 每种类
型
的变量都有各自的
初始化
方法,
memset
() 函数可以说是
初始化
内存的“万能函数”,通常为新申请的内存进行
初始化
工作。它是直接操作内存空间,mem即“内存”(memory)的意思。该函数的原
型
为: include <string.h> void *
memset
(void *s, int c, unsigned long n); 函数的
memset
用法 & int、long long、float、
double
的极值怎么清
memset
是计算机中C/C++语言
初始化
函数。作用是将某一块内存中的内容全部(以字节为单位)设置为指定的值。在竞赛中,常用来进行
数组
的
初始化
。
memset
函数原
型
定义如下: Copy正因为
memset
函数是以字节为单位赋值的,所以使用它并不能将
数组
元素修改为任意值,而竞赛中又常常需要将
数组
初始化
为 0、最大值或最小值。写循环赋值的话,也不是不可以,不过显得不那么“优雅”,针对这一点,下面整理了使用
memset
实现
数组
初始化
的一些常用方法。1、
memset
可以对 字符
数组
进行赋值吗?可以
C/C++二维
数组
初始化
:
memset
的正确使用与性能优化
在C/C++编程中,
数组
初始化
是基础且关键的操作。从内存布局原理来看,多维
数组
在物理内存中是连续存储的线性结构,这为高效
初始化
提供了可能。
memset
函数作为底层内存操作工具,通过字节填充机制实现快速内存设置,其技术价值在于能大幅提升大规模数据
初始化
的性能,尤其在嵌入式系统、游戏引擎等对性能敏感的场景中。然而,
memset
的正确使用需要区分静态
数组
与动态二维
数组
的不同内存模
型
:对于连续内存布局可直接使用,而对于指针
数组
模
型
则需逐行操作。本文深入解析了
memset
初始化
二维
数组
的适用场景与常见陷阱,帮助开发者
memset
初始化
最大最小常用值总结
如果是int
数组
: int类
型
范围:-2147483648~2147483647.
memset
(a,0x7fffffff ,sizeof(a)),0x7fffffff 或 0x7FFFFFFF,全部
初始化
为int的最大值,即2147483647;
memset
(a,127,sizeof(a)),全部
初始化
为int的较大值,即2139062143;
memset
(a,0,sizeof(a)),全...
C语言
数组
初始化
全解析:从基础概念到四种核心方法实战指南
数组
是编程中最基础的数据结构之一,其
初始化
操作直接关系到内存数据的确定性和程序的安全性。在
C语言
中,
数组
初始化
不仅涉及语法规则,更与内存布局、编译器行为及运行效率紧密相关。理解其原理有助于避免未定义行为,提升代码的健壮性。从技术价值看,正确的
初始化
能防止数据残留引发的逻辑错误,也是性能优化的关键环节。常见的
初始化
方法包括默认
初始化
、花括号列表
初始化
、
memset
函数
初始化
及C99指定
初始化
器,每种方法各有其适用场景与陷阱。例如,
memset
函数凭借底层指令优化,在大块内存清零场景下性能极优,但需警惕其按字节
新手乐园
33,315
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章