Tag: 结构

“从不兼容的指针类型分配”警告

我正在编写一个函数来解析带有纹理和动画数据的文件,并将其加载到我声明的一些全局结构中。 我在特定行上收到编译器警告“从不兼容的指针类型分配”。 这是很多代码,所以我只想在这里发布重要的部分。 首先,我的动画例程有一个struct数据类型,如下所示: typedef struct { unsigned int frames; GLuint *tex; float *time; struct animation *next; } animation; 如您所见,结构中的最后一个变量是指向动画完成时默认为另一个动画的指针。 这是加载函数的声明: void LoadTexturePalette(GLuint **texture, animation **anim, const char *filename) 该函数将信息加载到动画数组中,因此是双指针。 在加载每个动画的最后,从文件中提取一个整数,指示“下一个”指针将指向哪个动画(加载的动画)。 fread(tmp, 1, 4, file); (*anim)[i].next = &((*anim)[*tmp]); 在最后一行,我得到编译器警告。 我还没有使用那个变量,所以我不知道警告是否是一个问题,但我觉得我的语法或我的方法在设置该变量时可能是不正确的。

为什么C中的位字段需要定义类型unsigned int或signed int

我在我的C项目上运行代码质量检查,其涉及具有位字段的结构。 我遇到了一种情况,根据MISRA C 2004标准,规则#6.4 – 是一种违规,其内容如下:“6.4位字段只能被定义为unsigned int或signed int类型。” Microsoft Developer Network上提供的文献声明了这一点。 任何人都可以解释为什么bitfield成员的数据类型需要签名或无符号int? 为什么我不允许执行以下操作,即使以下代码编译时没有警告: typedef struct { char a: 4; char b: 4; char flag: 1; }MY_STRUCT

将结构指针传递给c中的函数

我将指向结构的指针传递给函数时遇到问题。 我的代码基本上如下所示。 在main函数中调用modify_item后,stuff == NULL。 我希望stuff是一个指向item结构的指针,元素等于5.我做错了什么? void modify_item(struct item *s){ struct item *retVal = malloc(sizeof(struct item)); retVal->element = 5; s = retVal; } int main(){ struct item *stuff = NULL; modify_item(stuff); //After this call, stuff == NULL, why? }

我试图按分数对节点进行排序。 我不知道我有什么错误

#include #include #include struct student{ char firstname[20]; char lastname[20]; double grade; char zipcode[10]; struct student *next; }; void display(struct student *first) { while (first != NULL) { printf(“\nFirst name: %s”, first->firstname); printf(“\tLast name: %s”, first->lastname); printf(“\tGrade: %.2f”, first->grade); printf(“\t ZipCode: %s”, first->zipcode); first = first->next; } } /*void add_Record(struct student *first) { char r[20]; struct […]

Calloc结构与指针在C中

我知道要使用的calloc请求内存,在所有位上写入0然后返回指向它的指针。 我的问题是:如果我使用包含指针的结构的calloc,那些指针会有NULL值还是我必须将它们设置为指向NULL? struct a{ char * name; void * p; }* A; 所以基本上,在我使用带有struct a的calloc之后,name和p会指向NULL吗? 谢谢!

从类型’char *’分配类型’char ‘时不兼容的类型

我正在尝试将char *字段分配给char *字段,但是会收到此错误: incompatible types when assigning to type ‘char[128]’ from type ‘char *’ 我怎样才能解决这个问题? 为什么会这样? AddressItem_Callback_ContextType *context = (AddressItem_Callback_ContextType *)malloc(sizeof(AddressItem_Callback_ContextType)); //check if icons need to be downloaded if (pEntity->cBigIcon[0] != 0){ if (res_get(RES_BITMAP,RES_SKIN, pEntity->cBigIcon) == NULL){ context->Icon = pEntity->cBigIcon; context->iID = pEntity->iID; res_download(RES_DOWNLOAD_IMAGE, pEntity->cBigIcon, NULL, “”,TRUE, 1, addressItem_icon_download_callback, context ); } } 声明: typedef […]

我如何使用结构?

好的,首先我会解释我的任务。 对于这个分配,我必须使用动态内存分配,我没有遇到任何问题。 我遇到的问题是弄清楚正确的工作方式。 对于我的任务,我需要创建一个程序,提示用户输入他们有多少学生然后要求提供以下信息; 学生证,出生日期和电话号码。 我需要使用循环来提示用户输入所有学生信息。 我需要创建一个循环,它将扫描所有学生ID并使用他们的生日找到最老的学生(循环必须能够扫描超过3名学生)。 这是我的代码,我已经从你们那里获得了一些建议甚至一些代码,但是在实现它们之后,我对我应该做的事情更加困惑。 请看一看并批评我。 编辑:我还添加了我收到的代码和错误 谢谢。 #include #include int main (void) { int * studentData= NULL; int * studentDataType=NULL; int students; int studentID; int year; int month; int day; long long phone; printf(“How many students are you entering records for:\n”); scanf(“%d”, &students); studentData=(int*)malloc((sizeof(int)*students)); struct studentDataType { int studentID; int year; […]

将位图文件读入结构

我想将一个位图文件读入一个结构和manuplate它就像制作一个镜像效果等但我无法理解我应该创建哪种结构以便读入它。 谢谢您的帮助

嵌套结构

以下代码在C ++编译器上编译。 #include int main() { struct xx { int x; struct yy { char s; struct xx *p; }; struct yy *q; }; 使用C编译器编译时,行为会有什么不同吗? 即会有任何编译器错误?

获取C结构成员列表

是否可以将结构成员列表作为char ** ? 例如,像这样: struct mystruct { int x; float y; char *z; }; /* … */ char **members = MAGIC(struct mystruct); /* {“x”, “y”, “z”, NULL}. */ 我也对编译器相关的方法感兴趣。 有这样的事吗? 感谢您的时间。