首页 > 后端开发 > C++ > 如何在 C 和 C 中模拟锯齿状数组?

如何在 C 和 C 中模拟锯齿状数组?

DDD
发布: 2024-11-06 04:54:02
原创
620 人浏览过

How to Simulate Jagged Arrays in C and C  ?

C 和 C 语言中的锯齿状数组

在有关编程语言的讨论中可能会遇到术语“锯齿状数组”。然而,C 或 C 本身并不支持这个概念。交错数组是指每个元素可以是变长数组的数组。

在给定的代码示例中,尝试使用以下语法声明交错数组:

<code class="c">int jagged[][] = { {0,1}, {1,2,3} };</code>
登录后复制

然而,C 在编译时抛出错误,表明除了第一个维度之外的所有维度都必须指定边界。这是因为 C 要求数组在编译时具有固定大小。

为了在 C/C 中模拟锯齿状数组,常用的方法是利用指针数组。该数组中的每个指针都指向动态分配的内存块,其中可以存储交错数组的元素。

C 中的示例:

<code class="c">#include <stdlib.h>

int main() {
    // Initialize array of pointers
    int *jagged[5];

    // Allocate memory for each pointer and set array values
    jagged[0] = malloc(sizeof(int) * 2);
    *(jagged[0]) = 0;
    *(jagged[0] + 1) = 1;

    jagged[1] = malloc(sizeof(int) * 3);
    *(jagged[1]) = 1;
    *(jagged[1] + 1) = 2;
    *(jagged[1] + 2) = 3;

    // Use the jagged array
    // ...

    // Deallocate memory
    free(jagged[0]);
    free(jagged[1]);

    return 0;
}</code>
登录后复制

以上是如何在 C 和 C 中模拟锯齿状数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板