memset初始化数组的问题
今天才搞清楚,memset用于初始化数组,仅能初始化为0值,而不能初始化一个特定的值,这怎么能模糊了呢???
因此,如果对申请的一段存放数组的内存进行初始化,每个数组元素均初始化为特定的值,必须使用循环遍历来解决。
short* pBuffer = (short*)malloc(x_size*sizeof(short));
memset(pBuffer, 0x00, x_size*sizeof(short));
for (int j=;j<x_size;j++)
{
pBuffer[j] = idw_options.dfNoDataValue;
}
C++ Reference对memset函数的解释:
void * memset ( void * ptr, int value, size_t num );
Fill block of memory
Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as an unsigned char).
也就是说,value只能是unsigned char类型,num是Number of bytes to be set to the value.
官方给的例子很好的说明了问题:
/* memset example */
#include <stdio.h>
#include <string.h> int main ()
{
char str[] = "almost every programmer should know memset!";
memset (str,'-',);
puts (str);
return ;
}
output:
------ every programmer should know memset!
memset初始化数组的问题的更多相关文章
- memset初始化数组的坑
memset函数常被我们用来初始化数组,然而有个坑可能会被我们踩到. 静态数组初始化 一般情形是这样的: #include <cstring> int main() { // 静态数组ar ...
- memset 初始化数组 & 实现原理
初始化数组可不必使用n重for循环. 原理 memset具有初始化数组的功能,能够初始化数组中的每一个值. 它是将数组中的每一个数的二进制的每一个字节初始化的. 比如初始化int类型的a数组:mems ...
- memset 初始化数组
memset是初始化一段内存区域的函数,其头文件是<string.h>,以前经常使用出现错误,整理一下. C++ Reference对于memset的定义为: void * memset ...
- 批量初始化数组和memset函数
对于数组的初始化有一下三种方式: int a[]={1,2,3,4,5} //通过判断初始化值得个数来却仍数组长度 int b[5]={1,2,3} //数组长度为5,可是初始值却只有三个,因此,不 ...
- c++ 批量初始化数组 fill和fill_n函数的应用
转自c++ 如何批量初始化数组 fill和fill_n函数的应用 std::fill(a+,a+,0x3f3f3f3f);///从下标2到下标10 前闭后开 共8个 std::fill_n(a+,,0 ...
- c#清空数组&初始化数组&动态数组
清空数组>>>Array.Clear [去MSDN查看] ]; ; i < str.Length; i++) str[i] = i.ToString(); Array.Clea ...
- PHP5.2 $arr = [] 初始化数组出现问题
初始化数组 $arr=[] ,出现问题,使用 $arr = array() ,一切正常
- Java自学-数组 初始化数组
Java 如何初始化数组 步骤 1 : 分配空间与赋值分步进行 public class HelloWorld { public static void main(String[] args) { i ...
- 使用memset初始化int数组
memset()是一个来自于string库的函数,正规用法是初始化char类型的数组.因为char类型只占1个字节,memset按字节赋值后,会将char类型数组的所有元素变为你指定的值.但是4字节的 ...
随机推荐
- Django 模板相关
Django 模板相关 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统,其中最 ...
- 理解WSGI
WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义 ...
- Java动态代理总结
在之前的代码调用阶段,我们用action调用service的方法实现业务即可. 由于之前在service中实现的业务可能不能够满足当先客户的要求,需要我们重新修改service中的方法,但是servi ...
- python使用(五)
1.shell_option.py 2.db_option.py 1.shell_option.py # coding=utf8 __author__ = 'SummerChill' import o ...
- Spring Cloud Eureka
搭建服务注册中心 创建eureka-center,pom.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...
- linux zip命令
linux zip 命令详解 功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串& ...
- Centos iptables防火墙关闭启动详解
CentOS .0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 .直接关闭防火墙 systemctl stop firewalld.service #停止firewal ...
- centos7-使用nginx做ftp站
关于nginx的安装可见: http://www.cnblogs.com/wenbronk/p/6557482.html 然后最简单的方式, 修改nginx的配置文件: server { listen ...
- 测试JavaScript数组Array
<script> var numbers = [1, 2, 3, 4, 5]; function isLessThan3(value,index,array) { var returnVa ...
- Linux 普通用户启动nginx
众所周知,apache的80端口为系统保留端口,如果通过其他非root用户启动,会报错如下: ()Permission denied: make_sock: could not bind to add ...