【问题标题】:Questions about 3D arrays in C [closed]关于 C 中 3D 数组的问题 [关闭]
【发布时间】:2013-10-03 06:21:15
【问题描述】:

我使用空来假设我不知道数组中存储了多少项目[cr.金贾尔·迪克西特]

【问题讨论】:

  • 请不要将您的代码作为屏幕截图发布!
  • 你有什么问题?

标签: c arrays linux multidimensional-array


【解决方案1】:

您正在越界访问您的数组。

例如

char name[HAVE_DISCOUNT][HAVENT_DISCOUNT][MAX_LENGTH];

//...
sscanf( input, "%s", name[i][HAVENT_DISCOUNT] );  // <-- out of bounds

您必须使用小于该维度大小的正整数来索引您的数组。

也许你想要这样的东西:

typedef enum {
    HAVE_DISCOUNT,
    HAVENT_DISCOUNT,
    NUM_DISCOUNT_TYPES
} DiscountType;

const int MAX_NAMES = 32;

char name[MAX_NAMES][NUM_DISCOUNT_TYPES][MAX_LENGTH];

// etc...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多