【问题标题】:2D Arrays and C二维数组和 C
【发布时间】:2014-04-29 18:09:23
【问题描述】:

C 编译器在处理 C(不是 C++)中的二维数组的方式上是否有所不同?我正在用 C 进行图像处理,在我看来,处理 2D 数组是最直观的方式,而不是 1D 数组。

我还在我的 Windows 机器上开发了一些算法,通过去噪或平滑处理图像。我的问题是,如果我使用二维数组存储图像和过滤器,我是否应该担心将这些算法传送到另一个 C 编译器?如果从长远来看,如果在 C 语言中使用 2D 数组,事情会不会很受欢迎? 所以这个问题的本质是 C 中的 2D 数组有多安全?

谢谢。

【问题讨论】:

  • “二维数组”是指int a[N][M],还是int *a[N],甚至是int **a?术语“二维数组”经常(过度)用于其中任何一个,即使它在技术上对它们中的任何一个都不是真正正确的(它们是“数组数组”、“指针数组”和“指向指​​针的指针” “ 分别)。通常只能使用a[i][j] 语法访问前两个...

标签: c arrays 2d


【解决方案1】:

C 实际上只有一维数组。 2D 数组只是一个 1D 数组,其中每个元素本身就是一个 1D 数组。编译器对此类数组的处理方式相同,因此您应该不会有任何问题。

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多