c++-请问一个MFC结构体数组的问题

问题描述

请问一个MFC结构体数组的问题

INPUT iput[1];
memset(iput, 0, 1 * sizeof(INPUT));
iput[0].type = INPUT_KEYBOARD;
iput[0].ki.wVk = VK_ESCAPE;
SendInput(1, iput, sizeof(INPUT));
如果第一句改成INPUT iput;的话 最后一句的第二个参数前面要加上取地址,请问这是为
什么呀?

解决方案

INPUT iput[1];是一个数组类型,存储相关内容一个地址值, iput第一个元素就是指向iput数组的首地址
最后一句要的是一个地址,而不是内容

INPUT iput 是定义的一个变量后,存储是变量的内容,而不是一个地址,最后一句的要的是地址,所以要加&

解决方案二:

关键在于 SendInput() 函数的形参定义,它需要什么样的参数,你的变量就必须适应它的要求。如果它要求是指针,则
1)定义成 INPUT iput[1]; 时 input 是一个常量指针
2)定义成 INPUT iput; 时,input 是一个结构体变化,不是指针。所以在做为 SendInput() 函数的参数时必须取地址,按指针传参数。

解决方案三:

SendInput第二个参数是指针类型或者引用类型。

解决方案四:

一个结构体长度的问题

时间: 2024-11-01 10:36:14

c++-请问一个MFC结构体数组的问题的相关文章

c++-请教一个MFC结构体的问题

问题描述 请教一个MFC结构体的问题 请问下MFC中的结构体和 联和有什么区别呀?联和是结构体的集和吗,我看联和里面全是结构体 解决方案 结构体是一个结构中的各个元素都给分配内存.联合是只有一块内存,联合里面的各个元素共用. 解决方案二: 一个结构体长度的问题一个关于结构体赋值的问题 解决方案三: 联合是只有一块内存,联合里面的各个元素共用.

c++-请问在C++中,结构体数组类型能作为类的数据成员吗?

问题描述 请问在C++中,结构体数组类型能作为类的数据成员吗? 我想让自己构造一个结构体数组来存储记录,结构体数组类型能作为类的数据成员吗? 解决方案 just do it 解决方案二: 可以.实现的时候注意不要出错就可以. 解决方案三: 可以,c++中结构体和类除了默认访问控制符外没什么区别,一个类的对象可以作为另外一个类的成员数据,结构体当然可以 解决方案四: 可以啊,结构体不过是扩展了的int float等等 解决方案五: 当然可以不过我觉得你还不如重新写个class作为专门存储数据 解决

c++-用new申请了一个结构体数组,delete时内存错误

问题描述 用new申请了一个结构体数组,delete时内存错误 strong text //////////////////////////////////////CLOCK算法部分//////////////////void CLOCK(){ arr *page_t; int ijpointertimes=0flag=-1num=0;//pointer为查找位置 page_t=new arr[m];//==============================开始计算============

c语言-冒泡排序可以这样写吗,我只对结构体数组中某一个元素进行排序,然后交换

问题描述 冒泡排序可以这样写吗,我只对结构体数组中某一个元素进行排序,然后交换 struct troop { char name[1]; int a[3]; }tro[4]; void bubblesort(int a, int b, int c) { struct troop temp; int i, j; for (i=a; i { for (j=a+1; j { if (tro[j].a[c] > tro[i].a[c]) { temp = tro[j]; tro[j] = tro[i];

结构体数组-C++中一个很奇怪的数组

问题描述 C++中一个很奇怪的数组 static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = { { ins_update, 1, 1000 }, { one_hz_print, 50, 1000 }, { five_second_call, 250, 1800 }, }; 注:AP_Scheduler是一个类,Task是这个类的结构体成员,一下是Task的定义: struct Task { task_fn_t function; u

编程c语言-vs2013中如何定义一个结构体该结构体定义一个结构体数组 结构体数组中包含一个链表

问题描述 vs2013中如何定义一个结构体该结构体定义一个结构体数组 结构体数组中包含一个链表 这样定义对么 编译时报错 缺少:在*前面 这是哪错了啊 请高手指点指点 解决方案 你把两个结构体的定义调换一下次序就没问题啦,要先声明或定义结构体:Station,才能使用 解决方案二: 因为struct Station是在struct Train结构体之后才定义的,所以你要在这之前先声明一下struct Train 解决方案三: 做一个前向声明,或者调换两个结构位置都可以. 解决方案四: 结构体数组

c/c++ 内存 结构体-在一个结构体中动态创建另一个结构体数组,那么怎样释放内存!求助,谢谢了!

问题描述 在一个结构体中动态创建另一个结构体数组,那么怎样释放内存!求助,谢谢了! struct Link_Info { int Destination_VertexID; int Vertex_To_Vertex_LinkID; int Cost_of_Link; }; struct Vertex_Info { int OutDegree; int Vertex_Num; Link_Info* out = new Link_Info[8]; }; Vertex_Info* Vertex_Cha

c++-一个结构体数组的小问题

问题描述 一个结构体数组的小问题 以下定义:typedef struct{ int x; int y;}a[10];可以么?它的含义是什么呢?如果可以,我在main函数里面如何声明这样一个变量? 解决方案 这是C的写法,C++应该这么写struct 结构体名{int x;int y;};使用结构体名 a[10]; 解决方案二: 有typedef那么相当于定义了a这样一种类型,含10个元素,每个元素含xy成员变量没有typedef则变成了匿名结构体.使用的话,把a当做类型名就行了: typedef

struct-关于结构体指针与结构体数组

问题描述 关于结构体指针与结构体数组 目前开发遇到一个问题,有一个动态库dll,需要传进去一个结构体数组,函数为 opt_api_init(InfoInitMarket* InitMarketInfo): 这个是结构体 typedef struct tagInfoInitMarket { char commID[COMMODITY_ID + 1]; //合约编码 char classID[CLASS_ID + 1]; //品种代码 char instrumentType; //合约类型:期货:F