C中的指针非常强大,效率很高.但是如何使用指针可以访问硬件?
我对此的想法是将指针的值设置为等于硬件的关联对象,而不是通过指针操纵它.但是,如果你已经有足够的访问硬件的对象和属性来使用指针,指针在哪里发挥作用?也许我想象一些错误的东西?
我在Windows 7上运行.
一个基本的例子以及解释为什么指针需要操纵该硬件属性将是很好的.
说我有这个:
int x;
int x = (State Determined By Program);
const char * pArray[(const int)x]; // ??
Run Code Online (Sandbox Code Playgroud)
在使用之前如何初始化pArray? 因为Array的初始大小由用户输入决定
谢谢!
这只是“这就是语言的工作方式”问题之一吗?编辑:
为什么动态内存允许在运行时分配数组的大小?
为什么我不能只使用从堆栈调用的变量,而不是从堆调用的变量?它们都是变量,其中一个只是从不同的地方调用,并且必须手动释放和创建。在堆栈中创建的变量可以在运行时更改,对吗?
发送:
vector<string> vs;
cds.lpData = &vs;
Run Code Online (Sandbox Code Playgroud)
我如何在WM_COPYDATA消息中检索这个,我似乎无法将接收部分中的void指针强制转换为字符串向量.
这是我到目前为止所得到的:
发送:
cds.lpData = &vs;
Run Code Online (Sandbox Code Playgroud)
接收结束:
case WM_COPYDATA:
{
COPYDATASTRUCT *cds = (COPYDATASTRUCT *)lParam;
if(cds->dwData == CDS_TAG)
{
vector<string> * vs;
vs = (vector<string>*)((cds->lpData));
}
}
Run Code Online (Sandbox Code Playgroud)
如何取消引用指向向量的指针?
谢谢!