在不使用指针的情况下将数组转换为多维 C

标签 c arrays multidimensional-array

首先,我想知道它是否可行。如果是这样,请检查我的代码并告诉我哪里出了问题。

int m[n]; // this is where I pass the values to a array
for(int i=0;i<n;i++) { 
    scanf("%d",&a);
    m[i]=a;

}

int v[n][b]; // this is where I pass the values from a array to a 2d array
for(int i=0;i<n;i++) { // but for some reason it doesnt work
        for(int j=0;j<b;j++) {
                v[i][j]=m[i];
            }
        }
}

输出是: 像这样

v[0][0]:0
v[0][1]:0
v[1][0]:1
v[1][1]:1
....

但我想要这样的东西:

 v[0][0]:0
 v[0][1]:1
 v[1][0]:2
 v[1][1]:3

不重复值

P.S- 如果我需要使用指针,你也可以这样解释我,但我更喜欢第一个。

最佳答案

在分配给 v[i][j] 时,您不断地重新分配 m[i] 中的任何值。

改为尝试:

v[i][j] = m[i*n + j];

这仅在数组 m 具有 n*b 元素时有效。

i*n 代表您正在处理的行,j 是列。反之亦然,这取决于您的想象。

关于在不使用指针的情况下将数组转换为多维 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48958028/

相关文章:

c - 锁定帧缓冲设备

c - 作为参数传递时数组发生变化

java - 具有用户输入的二维数组

java - Java 中 "wrap"ArrayList 的最佳方式?

c++ - C/C++ 中的 MATLAB "filter"函数

c - 使用 dirent.h 在 C 中实现 ls 程序

c - 在共享内存中使用结构体的段错误

javascript - 循环不适用于 react

Java 2D 数组不会给出总计

php - 从 Codeigniter 中的数据库查询创建多维数组