如何在C中缩小数组?

用户名

有这个片段

int main() {

  char *obstacles[3*3]

  char map[3][3] = {'D','*',' ',' ',' ',' ','*',' ',' '};

  int k = 0;

  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      if (map[i][j] == '*')
        obstacles[k++] = &map[i][j];
    }
  }   
  return 0;
}

导致我出现这种情况:

图片

如何将该数组缩小为k-cells数组?

马克·博内利

如果您的数组声明为固定大小,那么您将无能为力。它的大小是在编译时选择的,您无法在程序运行时对其进行修改。但是,如果您确实愿意,可以使用malloc()realloc()我确实没有这样做的充分理由:它只有9个指针,减少它不会有任何优势。

您可以将数组初始化为char *obstacles[3*3] = {NULL}(所有单元格都设置为NULL),然后NULL在扫描它时在第一个单元格处停止这是避免传递数组大小的常用方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何遍历缩小数组

来自分类Dev

如何快速缩小数组

来自分类Dev

如何从右到左缩小数组?

来自分类Dev

在Excel中缩小数组大小

来自分类Dev

如何从数组中删除一个值并缩小数组?

来自分类Dev

如何在C中输入小数

来自分类Dev

使用find查找类型来缩小数组中的元素

来自分类Dev

您如何缩小数据并将其放入向量中?

来自分类Dev

从数组中删除一些项并在Java中缩小数组

来自分类Dev

如何在Shell脚本中缩小JSON?

来自分类Dev

输出没有重复元素的动态数组(缩小数组)C++

来自分类Dev

如何在C#中获取小数的舍入值

来自分类Dev

如何在C中与12个小数相乘?

来自分类Dev

Java Delete Button GUI缩小数组

来自分类Dev

如何在C中填充char数组

来自分类Dev

如何在C中实现动态数组?

来自分类Dev

如何在C中反转多维数组?

来自分类Dev

如何在C ++中返回结构数组?

来自分类Dev

如何在C中操纵char数组

来自分类Dev

如何在C中打印多维数组?

来自分类Dev

如何在C ++中创建Bitset数组

来自分类Dev

如何在c中返回数组文字?

来自分类Dev

如何在c中填充指针数组

来自分类Dev

如何在C ++中声明布尔数组?

来自分类Dev

如何在C ++中删除指针数组?

来自分类Dev

如何在C中返回数组

来自分类Dev

如何在C中反转多维数组?

来自分类Dev

如何在C中重写char数组?

来自分类Dev

数组声明如何在C ++中工作?