首页 > 解决方案 > 我如何检查结构是否包含任何数据,因为我正在循环传递它?

问题描述

我正在尝试遍历已经为它们动态分配内存的二维结构数组,并识别任何没有来自用户输入的数据的结构。换句话说,我要求用户选择带有数组的特定点来存储他们的数据,然后我想遍历数组,打印其中的所有内容,并为没有保存数据的点显示 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++) {
            ???     
    }               
}

标签: cmultidimensional-arraystruct

解决方案


添加一个标志来标记使用/空结构。

自 C99 以来,有使用 #include 的 bool 类型


推荐阅读