Tag: struct

C全局匿名结构/联合

我有一个uint64变量,通常只需要高或低32位访问。 我使用的是32位ARM Cortex M0,为了提高速度,我试图将uint64变量与C中的两个uint32变量重叠,使用匿名结构,希望避免指针算法访问成员。 我正在尝试做什么? 可能是使用命名联合同样快,但现在我只是感兴趣,如果它可以没有。 以下内容无法成功编译: http://goo.gl/ejx37y #include volatile union { uint64_t ab; struct { uint32_t a, b; }; }; int main(void) { a = 1; };

QSorting malloc’d结构数组?

我在C中的qsort有这个比较器function,但无论我尝试什么,我似乎都会遇到分段错误… int textCompare ( const void * a, const void * b ){ const char **x =(const char**)a; const char **y =(const char**)b; return strcmp(*x, *y); } 这是我的qsort调用:其中message** mList = malloc(INITIAL_CAPACITY * sizeof(message)); 和count是一个整数,跟踪最后一个元素。 message只是一个typedef结构,包含一个int和一个指向char的指针。 我67%肯定我正确地调用了qsort,有人能指出我正确的方向吗? qsort (*mList, count, sizeof(message), textCompare); [编辑]我声明消息***而不是消息*的原因是因为我正在尝试初始化指向结构的指针“数组”; 除非我以错误的方式解决这个问题?

如何在C中动态分配2D数组?

所以我有一个带结构的程序 typedef struct s_struct { int rows; int cols; char* two_d; //This is supposed to be the 2D array } *GRID; 我想创建一个敲击并动态分配内存,然后填充2D数组,但我不知道如何。 这是我对create(int prows,int pcols)函数的作用: GRID grid = malloc(sizeof(struct s_struct)); grid ->rows = prows; grid ->cols = pcols; grid ->two_d = malloc(sizeof(char) * (rows*cols)); 我不明白这是如何创建一个2D数组,如果它甚至如此,以及如何填充数组。

使用MPI Derived数据类型创建并传递“结构数组”

我正在尝试使用MPI衍生数据类型使用MPI_Type_create_struct编写MPI_Alltoallv。 我找不到任何解决这个问题的例子。 像这样的大多数例子使用单个struct成员执行通信(Send / Recv),而我的目标是结构数组。 以下是一个更简单的测试代码,它尝试对使用DDT创建的结构数组执行MPI_Sendrecv操作: #include #include #include #include typedef struct sample{ char str[12]; int count; }my_struct; int main(int argc, char **argv) { int rank, count; my_struct *sbuf = (my_struct *) calloc (sizeof(my_struct),5); my_struct *rbuf = (my_struct *) calloc (sizeof(my_struct),5); int blens[2]; MPI_Aint displs[2]; MPI_Aint baseaddr, addr1, addr2; MPI_Datatype types[2]; MPI_Datatype contigs[5]; MPI_Status status; […]

c中链表中的升序

我试图通过链接和地址而不是值来改变链表中的升序 struct node { char name[30]; int percent; struct node *link; }; int main { clrscr(); randomize(); struct node *st; st=NULL; for(int i=0;ipercent display(st); AscMarks(&st); //Changing the order of links and addresses to arrange them in ascending order printf(“\nAscending order list…\n”); display(st); getch(); return 0; } /*Adds a node at the end of a linked […]

使用指针或对struct的引用

我和我的朋友在我们的代码中使用结构(我们的代码彼此分开)。 让我们看看以下示例: struct Book { char title; int pages; } void setBook(struct Book *tempBook) { tempBook->title = “NiceTitle”; tempBook->pages = 50; } 上面的代码很简单。 问题是,拥有这两个主电源是否有任何区别: int main() { struct book obj1; setBook(&obj); } 要么 int main() { struct Book *obj2; setBook(obj2); } 编辑:我的发言中并不清楚。 我已经将品酒初始化为 struct Book *obj2 = malloc(sizeof(struct obj2));

C中链表的可用内存

我一直试图释放加载到链表中的文件的已分配内存,我已设法释放节点,但我无法弄清楚如何释放文件的值副本的已分配内存。 我尝试过这样的事情: void FreeString(struct node * newNode) { for (int i = 0; i string); } } 但是编译器会因为分段错误而崩溃,而valgrind仍会指出内存泄漏。 如果有人能告诉我我做错了什么,并指出正确的方向,我们将不胜感激。 完整代码: 结构: typedef struct node { char *string; struct node *next; }node; //这里的主要function…… void Push(struct node **RefHead, char *word) { struct node *newNode = NULL; newNode = (struct node *)malloc(sizeof(node)); newNode->string = (char*)malloc(strlen(word) + 1); // […]

c – 尝试编写修改后的结构时出现分段错误

这是一个旨在使用ppm图像文件的程序。 我在尝试修改结构然后将其写入新文件时遇到编译错误。 这是全局结构(在ppmIO.c和ppmIO.h中声明): ppmIO.c: struct Image *instance; ppmIO.h: struct Image { int width; int height; unsigned char *data; }; extern struct Image *instance; 这是我的imageManip.h文件: #include void ImageInvert(struct Image **toInvert); void ImageSwap(struct Image **toSwap); 这些是我的imageManip.c文件的相关部分: #include #include #include #include #include void ImageInvert(struct Image **toInvert) { int i; int pix = (*toInvert->width) * (*toInvert->height); *toInvert = realloc(*toInvert, […]

将数据从文件读入结构

我正在开发一个可以处理链表/节点中的结构项的程序。 我有大多数函数运行正常,但是我仍然坚持如何从txt文件读取到一个结构(readFromFile函数)。 我一直在阅读但仍然很困惑,主要是关于如何将其作为一个函数而不是在main中编写,并且还读入一个结构 任何帮助,将不胜感激。 编辑:我似乎无法在目前的答案中获得function,所以我正在尝试从主要的txt中读取程序。 我可以打开文件,但问题是:如何将数据读入我的链表? (代码已被修改) 我正在读取的文本文件格式如下: #1 Flat Blade Screwdriver 12489 36 .65 1.75 #2 Flat Blade Screwdriver 12488 24 .70 1.85 #1 Phillips Screwdriver 12456 27 0.67 1.80 #2 Phillips Screwdriver 12455 17 0.81 2.00 Claw Hammer 03448 14 3.27 4.89 Tack Hammer 03442 9 3.55 5.27 Cross Cut Saw 07224 6 […]

无法分配指针linux接收的内存

我有一个函数,通过指针接收将存储的位置。 这个地方可以有不同的其他类似结构。该函数必须读取一个文件。 这个文件存储了一个我需要阅读的结构。 typedef struct user_manage_t{ short int user_id; char permission; long int other_id; long int check; }user_manage_t; typedef struct holder_t{ user_manage_t *user_manage; user_manage_t *user_manage_backup; //(…)and a lot of stuff }holder_t; holder_t holder; int db_read_from_file(user_manage_t *prt){ DEBUG_PRINT(“READ_FROM file started”); FILE *fd_read; char buffer[480]; int read, bytesRead=0; int num; const struct user_manage_t *header; fd_read = fopen(“/home/user/user_list”,”r+b”); […]