【发布时间】:2018-09-12 18:38:57
【问题描述】:
我正在尝试遍历已经为它们动态分配内存的 2D 结构数组,并识别任何没有来自用户输入的数据的结构。 换句话说,我要求用户使用数组选择特定点来存储他们的数据,然后我想遍历数组,打印其中的所有内容,并为没有保存数据的点显示 EMPTY。
当我在循环中传递结构时,如何确定结构是否包含数据?
typedef struct item {
char name[20];
int quantity;
} item;
struct item **shelves = (item **)malloc(num_rows * sizeof(item *));
for (i = 0; i < num_rows; i++) {
shelves[i] = (item *)malloc(num_cols * sizeof(item));
}
for (int i = 0; i < num_rows; i++) {
for (int j = 0; j < num_cols; j++) {
???
}
}
【问题讨论】:
-
在结构中添加标志
bool empty;。 -
char emptyC 中没有bool类型:p -
@Avert 您的信息已过时。大约十年左右..
-
@Mayur 只有在有其他成员也可以使用位字段时才会节省内存,这似乎不是这里的情况。
-
..不是说这很可能是一个非常不成熟的优化。
标签: c multidimensional-array struct