Tag: 结构

选择使用结构数组在C中排序,错误:“需要左值”

试图对一组Structs进行排序。 Struct是下面定义的TextArt typedef struct //struct that holds ASCII art { char artistName[80]; //name of artist char asciiArt[20][80]; //actual ascii art line by line int rating; //rating of art }TextArt; 我不认为结构与此有任何关系。 我得到编译器错误 错误:当尝试将一个结构分配给另一个结构时,左值作为赋值的左操作数(见下文) temp = asciiArt+pos_min; asciiArt+pos_min = asciiArt+i; //error here asciiArt+i = *temp; //error also here 呼吁运作 selectionSort(artPtr, artArrSize); 和全选择排序function。 有什么我不明白用C =在C中分配结构吗? 我以为是这个或者我对TextArt数组的传递在某种程度上是错误的。 请赐教,谢谢。 void […]

取消引用指向不完整类型’struct ____’的指针

我试图在C中创建一个可以接受大多数原始类型的类型。 我是C的新手并且不太了解结构。 我的错误发生在第10行(main.c),如果第10行被删除(也是main.c),它也会出现在第11行。 如果有人有想法/指点我会非常感激! 非常感谢! main.c中: #include #include “modularType.h” int main() { int data = 1; PyType object = createPyObjectInt(data); printf(“Type of data: %d\n”, object->typeOfData); printf(“Value of data: %d\n”, object->intData); return 0; } modularType.h: typedef struct pytype *PyType; PyType createPyObjectEmpty(void); PyType createPyObjectInt(int data); void setDataInt(PyType, int data); void setDataIntStar(PyType, int* data); void freeMyType(PyType); void freeCharStar(PyType); […]

声明一个结构数组

我正在尝试创建一个结构数组,但它出现了这个错误: “错误,数组类型为不完整的元素类型” typedef struct { char data[MAX_WORD_SIZE]; int total_count; Occurrence_t reference[MAX_FILES]; int nfiles; } Word_t; struct Word_t array[a];

为什么编译器会发出“警告:赋值在没有强制转换的情况下从指针生成整数”?

我不明白为什么我在尝试编译时会遇到错误。 我说错了 fractions.c:在函数“main”中: fractions.c:35:24:警告:赋值从指针生成整数而没有强制转换[默认情况下启用] fractions.c:38:24:警告:赋值从指针生成整数而没有强制转换[默认启用] fractions.c: 41:24:警告:赋值从指针生成整数而没有强制转换[默认情况下启用] fractions.c:44:24:警告:赋值从指针生成整数而没有强制转换[默认情况下启用] fractions.c:48:11:警告:未使用的变量“fArray”[-Wunused-variable]“ #include #include typedef struct{ int numerator; int denomonator; char operator; int num2; int den2; } fraction; void printFraction(fraction f); int main(){ fraction myFraction; char input; printf(“Enter the numerator of fraction 1: “); scanf(“%i”, &myFraction.numerator); printf(“Enter the demoninator of fraction 1: “); scanf(“%i”, &myFraction.denomonator); printf(“Enter the numerator […]

使用套接字通过Tcp / IP发送消息

我试图在客户端/服务器之间发送数据,数据看起来像 typedef Struct Message { int id; int message_length; char* message_str; }message; 我试图在客户端和服务器之间Write和Read此消息,不断更新此结构中的元素。 我听说过Writev可能会做到这一点。 我想向服务器发送一条消息然后服务器拉出元素并使用这些元素作为条件来执行正确的方法?

访问结构变量双指针

一些代码: typedef struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS { ULONG Size; WdfUsbTargetDeviceSelectConfigType Type; union { struct { PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; PUSB_INTERFACE_DESCRIPTOR* InterfaceDescriptors; ULONG NumInterfaceDescriptors; } Descriptor; struct { PURB Urb; } Urb; } Types; } WDF_USB_DEVICE_SELECT_CONFIG_PARAMS,* PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS; WDF_USB_DEVICE_SELECT_CONFIG_PARAMS参数; typedef struct _USB_INTERFACE_DESCRIPTOR { UCHAR bLength ; UCHAR bInterfaceClass ; UCHAR bInterfaceSubClass ; } USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR ; 能够通过 – > params.Types.Descriptor.NumInterfaceDescriptors访问NumInterfaceDescriptors 我想通过WDF_USB_DEVICE_SELECT_CONFIG_PARAMS访问bInterfaceClass。 […]

建立索引以获取结构的访问成员。 C编程

假设我有一个结构 typedef struct { unsigned char mem1; unsigned char *mem2 } MEMBERS; 哪里 unsigned sample = 12 MEMBERS memvalues = { 0x15 , &sample }; 当函数“GET_MEM”将结构“MEMBERS”的地址返回给X_mem时,我需要访问值mem1和mem2。 我的意思是: unsigned char *X_mem = GET_MEM ( ); //function returns address of memvalues unsigned value1 = *X-mem; unsigned Value2 = *++X_mem; 我希望value1给出0x15,而value2给出12。 我怎样才能做到这一点? 注意:请不要假设上面的代码示例在语法上是正确的。 它只是为了表达我的意图。 谢谢伙计们。

C:生成随机字符串并将其添加到struct的函数

来自Java / C#的一些经验,我很难绕过C的某些部分。我有一系列结构。 目前,这些结构只有一个成员(我将在轨道上添加其他成员) – 一系列字符。 此数组是一个由6个字符组成的字符串 – 两个字母,四个数字(例如XY1234)。 以下代码生成我正在寻找的objectCode: #include #include #include #include #define LETTERS_IN_ALPHABET 26 typedef struct object { char objectCode[6]; } object_t; void GetRandomSeed() { srand((unsigned)time(NULL)); } char RandomLetter() { return ‘A’ + rand() % LETTERS_IN_ALPHABET; } int RandomDigit() { return rand() % 10; } int main() { GetRandomSeed(); object_t object1; for […]

访问双指针

typedef struct _WDF_USB_DEVICE_SELECT_CONFIG_PARAMS { ULONG尺寸; WdfUsbTargetDeviceSelectConfigType类型; 联盟{ struct { PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor; PUSB_INTERFACE_DESCRIPTOR* InterfaceDescriptors; ULONG NumInterfaceDescriptors; } Descriptor; struct { PURB Urb; } Urb; struct { UCHAR NumberConfiguredPipes; WDFUSBINTERFACE ConfiguredUsbInterface; } SingleInterface; struct { UCHAR NumberInterfaces; PWDF_USB_INTERFACE_SETTING_PAIR Pairs; UCHAR NumberOfConfiguredInterfaces; } MultiInterface; }类型; } WDF_USB_DEVICE_SELECT_CONFIG_PARAMS,* PWDF_USB_DEVICE_SELECT_CONFIG_PARAMS; WDF_USB_DEVICE_SELECT_CONFIG_PARAMS参数; typedef struct _USB_INTERFACE_DESCRIPTOR { UCHAR bLength; UCHAR bInterfaceClass; UCHAR […]

为什么这个联合正在删除c代码中数组中的第一条记录?

这是我的一个头文件,它由一个包含4种不同结构的联合模板组成。 #define MAX 3 union family { struct name /*for taking the name and gender of original member*/ { unsigned char *namess; unsigned int gender; union family *ptr_ancestor; /*this is a pointer to his ancestors details*/ }names; struct male /*for taking the above person’s 3 male ancestors details if he is male*/ { unsigned char […]