1.在初始化数组尤其是需要每次都初始化的时候,很多同学使用循环来进行,这样不但速度慢,而且写起来也很长。所以现在提供一个函数来实现这个功能。。。

原型:extern void *memset(void *buffer, int c, int count);

功能:把buffer所指内存区域的前count个字节设置成字符c。

包含头文件:<string.h>

注意这个函数是字符串函数,所以一定要包含字符串头文件。

使用方法:

int a[50];

memset(a,0,sizeof(a));

这样呢,就将数组a内所有的值都赋成0了,sizeof也是一个函数,得到数组a的字节大小。

另外需要注意的是,memset函数是逐字节进行填充,所以a一般为char *型。对于其它类型的a,可以填充的值有两个,0和-1。因为计算机中用二进制补码表示数字,0和二进制补码为全0,-1的二进制补码为全1。

2.

new用法:

1.     开辟单变量地址空间

1)new int;  //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a = new int 即为将一个int类型的地址赋值给整型指针a.

2)int *a = new int(5) 作用同上,但是同时将整数赋值为5

2.     开辟数组空间

一维: int *a = new int[100];开辟一个大小为100的整型数组空间

二维: int **a = new int[5][6]

三维及其以上:依此类推.

一般用法: new 类型 [初值]

delete用法:

1. int *a = new int;

delete a;   //释放单个int的空间

2.int *a = new int[5];

delete [] a; //释放int数组空间

要访问new所开辟的结构体空间,无法直接通过变量名进行,只能通过赋值的指针进行访问.

3、如果在同一个进程内,用指针NEW一个数组,而不是局部变量
如果不在同一个进程,用int等

同一工程的话要用同一结构体,并保证发送的是动太生成的结构体,不能是栈变量,因为PostMessage是不阻塞的,也就是说PostMessage返回了,另一窗口不一定执行到了.你的栈变量已经没了.
不同工程的两个窗口要用特定的消息,且结构内不能有CString的那种类型

4.例子:
typedef struct
{
.....
    set<string> setImsiUsr;      //累积用户数
} STRU_A;

typedef struct
{
    ....
    STRU_HIGH_ALARM_FILE_TAIL fileTail;
} STRU_INFO;
STRU_INFO  struInfo;
memset(&struInfo, 0, sizeof(struInfo));
执行了上面的语句之后,struInfo.fileTail.setImsiUsr.insert("Insert"); ---就死在这条语句上了,kill -9才能将进程杀掉。
原因:
1、含有指针的struct不能做memset
2、set内部是指针处理的

sendmessage传递数组的更多相关文章

  1. 前端AJAX传递数组给Springmvc接收处理

    前端传递数组后端(Spring)来接收并处理: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  2. struts2 传递数组、List、Map

    struts2 传递数组.List.Map jsp文件 数组:     <s:textfield name="ages" value="a1">&l ...

  3. 在ASP.NET MVC中以post方式传递数组参数的示例

    最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考. 一.准备参数对象 在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组.这个自定义对象 ...

  4. jquery ajax post 传递数组 ,多checkbox 取值

    jquery ajax post 传递数组 ,多checkbox 取值 http://w8700569.iteye.com/blog/1954396 使用$.each(function(){});可以 ...

  5. Jquery post 传递数组给asp.net mvc方法

    以批量删除数据为例  做批量删除会需要传递要删除的数据ID数组 function RemoveLog(){ var postModel=[]; //遍历复选框获取要删除的数据ID 存放到数组中  $( ...

  6. c语言函数传递数组

    1.传递数组,打印不出来 #include <stdio.h> void solve() { printf(]); } int main() { int i; ;i<n;i++) { ...

  7. jquery ajax传递数组给php

    写成:var data = {'item[]':item}; $.post(url,data,function(return_data) 写成item:item会导致数据缺失. 更多:http://w ...

  8. C++ 数组作为函数参数时,传递数组大小的方法

    废话不多说,先上错误示范: void fun(int arr[arr_num]) { // ... } int main() { // ... int *arr = new int[10]; fun( ...

  9. 用超链接传递数组或get方式

    <?php /** * 超链接传递数组参数 */ if($_GET['names']){ $arr=explode('-',$_GET['names']);//将数组分割为字符串 print_r ...

随机推荐

  1. wordpress无法登录的解决方法

    使用wordpress建站的朋友可能会遇到wordpress管理密码,有时甚至是正确的密码,但是多次尝试输入都无法登录,并且输入用户名和输入电子邮件都无法获取密码,遇到这种情况怎么办,本文教你如何处理 ...

  2. Palindromic Paths(DP)

    描述 Given an N×N grid of fields (1≤N≤500), each labeled with a letter in the alphabet. For example: A ...

  3. 九度oj 题目1537:买卖股票

    题目描述: 给定一个大小为n的数组,数组的元素a[i]代表第i天的股票价格. 设计一个算法,计算在最多允许买卖k次(一买一卖记为一次)的条件下的最大收益. 需要注意的是,你不能同时拥有两份股票.也就是 ...

  4. 13-数组的API方法遍历

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. MAC生成公钥私钥

    前言 需要开发者在本地上使用openssl来生成私钥和公钥 由于mac 自带openssl工具,所以不用像windows那样要下载安装openssl工具 步骤 1.创建一个文件夹,终端进入该文件夹 c ...

  6. 【bzoj4200】[Noi2015]小园丁与老司机 STL-map+dp+有上下界最小流

    题目描述 小园丁 Mr. S 负责看管一片田野,田野可以看作一个二维平面.田野上有 nn 棵许愿树,编号 1,2,3,…,n1,2,3,…,n,每棵树可以看作平面上的一个点,其中第 ii 棵树 (1≤ ...

  7. [BZOJ4992] [Usaco2017 Feb]Why Did the Cow Cross the Road(spfa)

    传送门 把每个点和曼哈顿距离距离它3步或1步的点连一条边,边权为3 * t + a[x][y] 因为,走3步,有可能是3步,也有可能是1步(其中一步拐了回来) 最后,把终点和曼哈顿距离距离它1步和2布 ...

  8. 【基础操作】FFT / DWT / NTT / FWT 详解

    1. 2. 点值表示法 假设两个多项式相乘后得到的多项式 的次数(最高次项的幂数)为 $n$.(这个很好求,两个多项式的最高次项的幂数相加就得到了) 对于每个点,要用 $O(n)$ 的时间 把 $x$ ...

  9. android开发里遇到的坑——eclipse项目导入android studio以后Run按钮灰色

    android studio编译有错误但是没有提示给用户,关闭android studio重新启动项目后,会显示错误,修复以后即可!

  10. 家用电脑架服务器提供web

    要搞一个可以对外的web服务,需要服务器,域名.这些都需要money,但有时,我们只是想自己可以在外面访问,或是提供给朋友看自己的网站有多牛.这时使用家用电脑配置一个可以提供web的服务器,就显得很必 ...