c - 如何动态地从数组中获取单元格值? [C89]

标签 c c89

我有这个数组:

array[0][0] = 1; 
array[0][1] = 2;
array[0][2] = 3;
array[0][3] = 4;

我怎么能做这样的事情?

int a = 0;
int b = 1;

printf("%d",array[a][b]);
<小时/>

C89 是必需的。这是MCVE :

int main(int argc, char *argv[])
{
    int array[0][4] = {1, 2, 3, 4}, i = 0;

    for (i = 0 ; i < 4 ; i++)
    {
        printf("%d\n", array[0][i]);
    }

    return 0;
}

输出:

1512079328
32764
0
3

最佳答案

您的数组在第一维中至少需要 1 个,在第二维中至少需要 4 个。

int array[1][4];
//        ^  ^

原因:C 和 C++ 中的数组具有从 0size - 1 的有效索引。因此,如果您想访问索引 0 ... 3,数组的大小必须至少为 4

关于c - 如何动态地从数组中获取单元格值? [C89],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53338954/

相关文章:

java - 如何通过 cgo/JNA 传递 Java 字符串数组 []String to Go

c - 如何定位字符串中第一次出现的字符串

c - void* 类型转换为 char* 的增量失败

c - C 中的变量声明位置

c - 如何在 C 中初始化类型定义 union 的结构?

c - 我的快速排序分区函数

C - 为什么在使用 uint64_t 计数器时 for 循环会卡住,而 while 循环却不会?

c - 在 C 中将多维数组复制到另一个时出现语法错误

c++ - Unsigned int 取负值

c - unistd.h 常量 linux x86_64