dro*_*n07 0 c++ compiler-errors codeblocks void-pointers memory-address
这是我的代码:
#include <iostream>
using namespace std;
int main()
{
void *x;
int arr[10];
x = arr;
*x = 23; //This is where I get the error
}
Run Code Online (Sandbox Code Playgroud)
如您所见,代码非常简单.它只是创建一个void指针x,它指向数组'arr'的内存地址,并将整数23放入该内存地址.但是当我编译它时,我收到错误消息"'void*'不是指向对象的指针类型".当我使用'int'指针而不是void指针然后编译它时,我没有得到任何错误或警告.我想知道为什么我会收到这个错误.
谢谢.
正如编译器消息所说,void*
不是指向对象类型的指针.这意味着,你不能做什么用void*
,除了明确地将其转换回另一个指针类型.A void*
表示一个地址,但它没有指定它所指向的事物的类型,因此您无法对其进行操作.
归档时间: |
|
查看次数: |
3839 次 |
最近记录: |