gpt4 book ai didi

c - 将 Char 类型转换为结构类型

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:20 25 4
gpt4 key购买 nike

我正在研究一个问题,作为其中的一部分遇到了以下类型的问题......

对于下面的代码

#include<stdio.h>
#include<stdlib.h>
typedef struct sample
{
int a;
char b;
}sample;

int main()
{
char *buf;

buf = (char *)malloc(sizeof(char)*sizeof(sample));

buf = ((sample *) buf);
buf->a = 10;
buf->b = 'm';
printf("%d\n",(buf)->a);
printf("%c\n",(buf)->b);

return 0;
}

编译时错误是:

example.c:16: 错误:请求成员 a' 不是结构或 union
example.c:17: 错误:请求成员
b' 不是结构或 union

这是因为我无法将较低的数据类型转换为较高的类型......??

我尝试使用 Calloc 代替 malloc,以便可以分配连续 block ,但无济于事..

帮我找出这个转换中的逻辑缺陷...

提前致谢

最佳答案

优普应该改变

char *buf;    
buf = (char *)malloc(sizeof(char)*sizeof(sample));

sample *buf;    
buf = (sample *)malloc(sizeof(sample));

因为将 buf 声明为 char * 会阻止编译器理解您的意图(指向示例结构)。

关于c - 将 Char 类型转换为结构类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4745662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com