C:\Users\k2284\Desktop\c语言\3.cpp(22) : error C2100: illegal indirection
时间: 2023-12-14 09:34:26 浏览: 235
这个错误是由于对非指针变量使用间接访问运算符“*”引起的。在C语言中,“*”运算符用于指针变量的间接访问,即访问指针所指向的内存地址中存储的值。如果对非指针变量使用“*”运算符,则会出现编译错误C2100。
在你提供的引用中,错误信息指出在第33行出现了非法的间接访问运算符“*”。具体来说,可能是在对一个非指针变量使用了“*”运算符,或者是在对一个空指针进行了间接访问。
在引用中,代码中定义了一个整型变量r和一个整型指针变量s,并将s初始化为0。然后,代码尝试将200赋值给*r,即对空指针进行了间接访问,导致了编译错误C2100。注释掉这行代码后,代码可以正常编译运行。
相关问题
error C2100: 非法的间接寻址
这个错误通常是在C语言中使用了非法的间接寻址操作引起的。间接寻址操作是通过指针来访问内存中的数据。
要解决这个错误,你需要检查代码中的指针使用情况。可能的问题包括:
1. 空指针引用:当一个指针没有被初始化或者被赋值为NULL时,对它进行间接寻址操作会导致非法访问。你可以通过在使用指针之前确保它被正确初始化或者赋值。
2. 野指针引用:当一个指针超出了它所指向的内存范围,或者已经被释放但仍然被引用时,进行间接寻址操作也会导致非法访问。你可以通过确保指针指向有效的内存地址,或者在释放指针之后将其置为NULL来避免这个问题。
3. 类型不匹配:如果你试图将指针转换为不兼容的类型进行间接寻址,也会导致非法访问。确保你的指针类型和要访问的数据类型匹配。
希望以上信息对你有帮助!如果你有更多的问题,请随时提问。
阅读全文