相关疑难解决方法(0)

为什么使用数组大小​​1而不是指针?

在一个C++开源项目中,我看到了这一点.

struct SomeClass {
  ...
  size_t data_length;
  char data[1];
  ...
}
Run Code Online (Sandbox Code Playgroud)

这样做有什么好处而不是使用指针?

struct SomeClass {
  ...
  size_t data_length;
  char* data;
  ...
}
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的是使用size 1数组版本,用户不会看到NULL.还有别的事吗?

c c++

46
推荐指数
4
解决办法
1万
查看次数

将结构类型定义为数组是什么意思?

我的书中的图形邻接表代码由下式给出:

typedef struct vertexNode //vertexNode in an AdjacencyList
{
    VertexType data; 
    EdgeNodeType *firstEdgeNode;

} VertexNode, AdjList[MAXVEX];

AdjList adjList; # adjList is a MAXVEX-size array 
Run Code Online (Sandbox Code Playgroud)

我对typedef:的最后一行感到困惑typedef struct{...} AdjList[MAXVEX]

我能理解的形式是:

typedef struct{
...
} VertexNode,

VertexNode AdjList[MAXVEX]; # AdjList is a MAXVEX-size array 
Run Code Online (Sandbox Code Playgroud)

要么

struct{
...
} AdjList[MAXVEX]; # AdjList is a MAXVEX-size array 
Run Code Online (Sandbox Code Playgroud)

c arrays struct typedef

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

标签 统计

c ×2

arrays ×1

c++ ×1

struct ×1

typedef ×1