代码报错invalid operands of types 'size_t*' {aka 'unsigned int*'} and 'int' to binary 'operator*'
时间: 2023-07-30 15:12:48 浏览: 222
你遇到了一个编译错误,这是因为在代码中使用了 `*` 运算符将 `size_t*` 类型的指针与 `int` 类型的整数相乘,这是不允许的。
要解决这个问题,你可以将第 16 行的代码修改为:
```C++
iconv(cd, &inbuf, &utf8Len, &outbuf, utf8Len * 2); // 进行转换
```
这样就可以避免使用指针与整数相乘,使得代码能够正常编译。
注意:在实际使用中,需要根据转换后的字符串长度来动态分配空间,否则可能会导致内存溢出。
相关问题
这个报错是什么意思6 18 D:\空白\作业\3.25.003.cpp [Error] invalid operands of types 'int*' and 'int' to binary 'operator&'
+'
这个报错意味着在 C++ 代码中,出现了不合法的操作数类型,具体是针对将一个 int 类型指针和一个 int 类型数值使用二元运算符 +(加法)进行运算时出现的错误。
常见的情况是,可能在代码中意外将一个 int 类型数值与 int 类型指针做了加法运算,这样是不合法的。在 C++ 中,指针与指针之间、指针与数值之间的运算是有一定限制的,只有当两个指针指向的类型相同才能进行指针运算,而一个指针类型和一个数值类型之间也不能进行加法运算。
如果需要在代码中进行指针运算,需要确保运算操作数的类型正确,并且必须保证指针指向的类型相同,否则可能会出现类似的报错信息。
invalid operands of types ‘float‘ and ‘int‘ to binary ‘operator&
根据提供的引用内容,我们可以看出这是一个C语言的错误信息,其中%和&都是C语言中的二元运算符。%是求余数运算符,而&是按位与运算符。在C语言中,%和&只能用于整型数据,不能用于浮点型数据。因此,当我们将浮点型数据和整型数据一起使用%或&时,就会出现“invalid operands of types ‘float‘ and ‘int‘ to binary ‘operator%’”或“invalid operands of types ‘float‘ and ‘int‘ to binary ‘operator&’”这样的错误信息。
阅读全文