相关疑难解决方法(0)

结构标签与花括号后面的内容有什么区别?

有人可以为我解释这段代码吗?

typedef char AirportCode[4];

typedef struct NodeTag{
  AirportCode Airport;
  struct NodeTag *link;
}Node;

Node *L;
Run Code Online (Sandbox Code Playgroud)

这是我的数据结构类的代码片段.实现这段代码是为了在链表节点中保存数据.我想要了解的是NodeTag通常用于什么?是否希望结构在其内部保持另一个迭代,因为缺少更好的单词?NodeTag与大括号之后的内容有什么区别,在本例中为"Node"?

c struct typedef

0
推荐指数
1
解决办法
231
查看次数

将cpp代码更改为c(结构类型)

可以帮助使代码纯粹C.

struct edge
{
    char key;
    char values[5];
};

edge* a = new edge[9];
Run Code Online (Sandbox Code Playgroud)

c c++

-1
推荐指数
1
解决办法
177
查看次数

用结构前缀初始化是什么意思?

我正在阅读一些代码并遇到以下语句:

 struct sockaddr_in server
Run Code Online (Sandbox Code Playgroud)

我知道这sockaddr_in是一些预定义的,struct但为什么我们把它struct作为前缀?也如下所示,尝试了类似的事情

在此处输入图片说明

我不能只写:

sockaddr_in server
Run Code Online (Sandbox Code Playgroud)

c sockets struct

-1
推荐指数
1
解决办法
53
查看次数

如何在C++中序列化结构数据?

我在一次采访中被要求序列化数据(因此它可以存储在缓冲区中并通过某个网络发送)。这就是我想出的-

struct AMG_ANGLES {
    float yaw;
    float pitch;
    float roll;
};

char b[sizeof(struct AMG_ANGLES)];

char* encode(struct AMG_ANGLES *a)
{

    std::memcpy(b, &a, sizeof(struct AMG_ANGLES));
    return b;
}

void decode(char* data)
{
 // check endianess   
    AMG_ANGLES *tmp; //Re-make the struct
    std::memcpy(&tmp, data, sizeof(tmp));
}
Run Code Online (Sandbox Code Playgroud)

这样对吗?任何人都可以提供替代设计吗?我没有收到回电,所以我只是想了解我可以改进的地方。

c++ serialization

-1
推荐指数
1
解决办法
382
查看次数

为什么为数组结构赋值不工作C.

我正在尝试编写一个收集学生信息的程序.我正在使用一系列学生(结构)

typedef struct {
  char name[50];
  struct Course* course;
}Student;
Run Code Online (Sandbox Code Playgroud)

在我的主要()我这样做了

Student* stds = (Student*) malloc(app.std_cnt * sizeof(*stds) );

getStdData(stds);
Run Code Online (Sandbox Code Playgroud)

这是getStdData函数

void getStdData(struct Student *students){

 int i;
 char name[50];

 Student std;

 printf("\n");

 for(i = 0; i < app.std_cnt; i++){

    printf("std [%i] name : ",i+1);


    scanf("%s",&name);

    strcpy(std.name,name);

    students[i] = std;

 }
}
Run Code Online (Sandbox Code Playgroud)

当我编译我得到

Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

gpa.c
gpa.c(124): error C2440: '=': cannot convert from 'Student' to 'Student'
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?为什么抱怨学生转学?他们不是同一类型?

c arrays malloc struct

-2
推荐指数
1
解决办法
71
查看次数

C++ struct关键字用法

我按照本指南设置了一个基本套接字服务器:https: //www.geeksforgeeks.org/socket-programming-cc/

所以,我知道当你使用关键字struct来定义数据结构时,但正如你在示例中所看到的,它使用结构关键字创建了sockaddr_in的实例,但它不是用于创建/定义结构,而是用于创建一个实例.

所以我想知道为什么在本指南中定义一个sockaddr_in结构,他之前放置'structure'关键字,我没有尝试它,它正确编译.

背后有什么理由吗?

c++ struct

-2
推荐指数
1
解决办法
200
查看次数

当使用struct时,为什么sizeof()函数在C++中的工作方式存在一些歧义

struct node
{
  int data;
  struct node *next;
}

cout<<sizeof(struct node)<<sizeof(node)<<endl; 
//no error, C++ allows us to use sizeof(struct node) and sizeof(node) both. 
Run Code Online (Sandbox Code Playgroud)

而我们不能用int数据类型做同样的事情

int a;
cout<<sizeof(int) <<sizeof(a) <<endl;//there is no error here

  //BUT

cout<<sizeof(int a) <<endl;//this throws an error 
Run Code Online (Sandbox Code Playgroud)

我理解"struct node"本身就像一个数据类型,可用于声明"struct node"类型的变量.通过sizeof()如何使用int的行为,可以理解sizeof(struct node)等同于sizeof(datatype),因此是正确的用法.

但是sizeof(节点)如何工作呢?它不会抛出任何错误."node"本身不能用于声明任何其他变量,它需要是"struct node"来声明变量.

c++

-3
推荐指数
1
解决办法
99
查看次数

当我们有一个更短的方法时,为什么我们在结构中使用typedef

当我定义一些随机结构时,例如在Visual Studio中的cpp文件中

1)    struct CAddition {
    int x, y;

    CAddition(int a, int b) { x = a; y = b; }
    int result() { return x + y; }
};
Run Code Online (Sandbox Code Playgroud)

现在,如果我定义一些结构对象

CAddition foo;
Run Code Online (Sandbox Code Playgroud)

它没有任何错误,但如果我最后使用任何别名

2) struct CAddition {

    int x, y;

CAddition(int a, int b) { x = a; y = b; }
int result() { return x + y; }
}CAddition;
Run Code Online (Sandbox Code Playgroud)

我不能简单地定义任何对象而不在定义之前使用struct

 struct CAddition foo;
Run Code Online (Sandbox Code Playgroud)

或者另一种方法是添加

typedef struct CAddition { 
Run Code Online (Sandbox Code Playgroud)

在方法2中,为了避免每次都重写struct,我的问题是这两个定义之间的区别是什么,方法1不使用更少的关键字,更容易使用在什么条件下我们应该使用结构的第二个定义.

c++ struct

-5
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×5

struct ×5

c ×4

arrays ×1

malloc ×1

serialization ×1

sockets ×1

typedef ×1