【发布时间】:2019-08-25 18:39:25
【问题描述】:
我正在尝试从结构成员中转换 void*。结构如下所示:
typedef struct{
int n;
void* string;
}query;
我想将成员string 转换为char* 并存储另一个字符串——比如说str2——,像这样:
char* str2 = "hello";
(*(char*)q.string) = str2;
但它一直告诉我这个警告:
example.c:在函数“main”中: example.c:23:33: 警告:赋值从没有强制转换的指针生成整数 [-Wint-conversion] (* (char* )q.string) = str2;
为什么这不起作用?
【问题讨论】:
-
我认为由于间接运算符应用于 q.string 指针而报告了警告。您尝试将 str2 指针值(地址)分配给 q.string 指向的内存区域的第一个字节。正确的方法是:q.string = str2;