需要将wchar_t*的值赋值给long long*
时间: 2023-11-14 18:05:02 浏览: 123
好的,那么我们可以将wchar_t*类型的字符串先转换成long long类型的整数,然后再将这个整数赋值给long long*类型的变量。
具体实现可以参考以下代码:
```c++
#include <wchar.h>
#include <stdio.h>
typedef struct {
wchar_t* str;
} myStruct;
int main() {
myStruct myVar;
long long* myLLVar;
int myIntVar = 12345;
wchar_t myBuffer[20];
swprintf(myBuffer, sizeof(myBuffer), L"%d", myIntVar);
myVar.str = myBuffer;
long long myLLInt = _wcstoi64(myVar.str, NULL, 10);
myLLVar = &myLLInt;
printf("myIntVar: %d\n", myIntVar);
printf("myLLInt: %lld\n", myLLInt);
printf("*myLLVar: %lld\n", *myLLVar);
return 0;
}
```
在这个示例中,我们首先将整数myIntVar转换成wchar_t*类型的字符串,并将其存储在myStruct类型的变量myVar中。然后,我们使用函数_wcstoi64将myVar.str转换成long long类型的整数myLLInt,并将其存储在myLLVar所指向的地址中。最后,我们打印出了myIntVar、myLLInt和*myLLVar的值,以确保转换和赋值都成功了。
需要注意的是,由于我们是将myLLInt的地址存储在myLLVar中,因此myLLInt在函数返回后将被释放,所以在实际使用时需要注意这一点。
阅读全文