在这个程序中,我尝试创建一个struct,然后初始化一个具有该struct类型的数组,将name和ages放入数组中,并输出结果。但是,当我编译这个文件时,它说“名字”和“年龄”不是结构或联合。有人能发现我的错误吗?谢谢
#include <stdio.h>
#include <stdlib.h>
/* these arrays are just used to give the parameters to 'insert',
to create the 'people' array */
char *names[7]= {
我试图将一个结构函数指向另一个结构的另一个函数,
请考虑这一点:
// Main Structure:
typedef struct
{
int GetValA(int a)
{
return a * 2;
}
} x;
typedef struct
{
int(*HGetValA)(int); // Pointer function
} hookx;
// Then
int main()
{
x v1;
hookx* v2;
v2 = (hookx*)&v1; // or 0x0 memor
这就是我想要做的:
1)我想要一个实例化数据结构的函数。
void instantiateCDB(void);
2)我还想要一个函数来更新实例化的数据结构,并返回指向数据结构的const指针(使它成为只读的)。
我知道这可以在C++/Java中完成。但也可以用C语言做吗?
我想要写的程序流是:
main(){
instantiateCDB(); // Allocates a CDB
const struct canDataBlock * cdb = getUpdateSystem();
}
// But the best function definitions that
我是一个C编程新手,对以下几行代码有一个疑问。这发生在创建结构电影的链表的上下文中:
struct film {
char title[TSIZE];
int rating;
struct film * next;
}
int main(void)
{
struct film * head = NULL;
struct film * prev, *current;
char input[TSIZE];
// some code ommitted
strcopy(current->title, input);
假设我们在C或C++中定义了两个结构(我在C和C++中得到了相同的结果,我认为规则是相同的,如果它们不是)。
一个具有不完整类型的值成员的:
struct abc{
int data;
struct nonexsitnow next; //error: field ‘next’ has incomplete type, makes sense since "struct nonexsitnow" hasn't been declared or defined.
};
和一个指针成员的不完全类型:
struct abc{
int data;
struct
C如何存储全局结构变量?另外,如果我尝试将一个较小的struct对象分配给一个较大结构的指针?基本上如下:
struct A{
int a;
};
struct B{
int b;
};
struct C{
struct A a;
struct B b;
};
struct A aa;
struct C * c = (struct C*) &aa;
c->b指向的内存位置是什么?
我尝试了一个基本示例,似乎无论我声明/初始化两个变量的顺序如何,编译器总是在下面的示例中将s1与s3耦合:
#include <stdio.h>
struct One{
in
在C++17中有规范文本类. text /17:
分配具有相同访问控制(第14条)的(非联合)类的非静态数据成员,以便以后的成员在类对象中具有更高的地址。不指定具有不同访问控制的非静态数据成员的分配顺序。
还有. Also /24类:
如果标准布局类对象有任何非静态数据成员,则其地址与其第一个非静态数据成员的地址相同。
以下是两个例子:
struct A { int x, y, z; } a;
struct F { public: int p; private: int q; public: int r; } f;
根据上述标准文本,C++17保证&a.x < &
在下面的代码中,如何创建指向变量triangle.pluto.mars.a的指针,这样就没有必要在printf行中为成员(一个)重复整个路径。
#include <stdio.h>
int main(){
struct euler {
int a;
int b;
};
struct gauss {
int f;
int g;
struct euler mars;
};
struct aristotle{
int x;
int
我必须澄清一个疑问,它在c和c++中也有相同的概念。
假设我有这样一个结构:
struct Huffman
{
int value;
unsigned char sym; /* symbol */
struct Huffman *left,*right; /* left and right subtrees */
};
typedef struct Huffman Node;
Node * tree;
现在我用树变量创建树。然后同时使用点运算符和箭头运算符。就像这样。
Arrorw操作符:
for (i = 0; i <
在我的任务中,我使用了我自己创建的结构。问题是,当释放分配的内存时,我是否应该首先释放结构体的字段,因为它足以调用free(ptrToStruct)?
struct Prof{
char* first_name;
char* second_name;
char** trained_classes;
int count_of_assigned_classes;
int max_classes_to_take;
int count_of_trained_classes;
int assigned_to_untrained;
};
对于一个任务,我必须写一个循环队列(我想你们大多数人都很熟悉)。我创建了一个使用动态内存初始化队列结构的结构和函数。注意,我还在我分配内存的结构中有一个数组arr。
由于某种原因,我似乎无法将数组从记忆中解放出来。
struct queue {
element_t *arr; // dynamic array containing data elements
int current_size; // Counts number of elements in the queue
int front, rear; // Remark for later: extra fi
我知道在C中,结构的第一个成员保证在它之前没有填充。因此,&mystruct == &mystruct.firstmember总是正确的。
这允许"struct继承“技术,。
typedef struct
{
// base members
} Base;
typedef struct
{
Base base;
// derived members
} Derived;
// ... later
Base* object = (Base*) malloc(sizeof()); // This is legal
但是,我想确保这实际上在无