#include <stdio.h>
#include <malloc.h>
int main()
{
//这是一个二维数组
int arr[2][3] = {
{1,2,3},
{4,5,6}
};
//获取数组的尺寸和行列数:
int len = sizeof(arr) / sizeof(arr[0][0]);
int row = sizeof(arr) / sizeof(arr[0]);
int column = len / row;
//知道了长度就可以使用calloc创建一个给定长度的数组(但用完记得要free)
int* new_arr = (int*)calloc(len, sizeof(int));
//将二维数组内的数值写入一维数组
for (int i = 0; i < len; i++)
{
//确定行号 用索引 i 除以(每行中有几列) 得到行数
int y = i / column; // 如 第5个数 / 每列有3个,则为 4/3= “1”(第二行)
//确定列
int x = i % column; // 如 第5个数 % 每列有3个,则为 4/3= 1余 “1” (第二个)
//将该数值写入新数组
if (!new_arr) { free(new_arr); return 1; } //new_arr为空的验证,如果出现此错误则 return 1
else {
new_arr[i] = arr[y][x];
}
}
//输出新数组的数字
for (int i = 0; i < len; i++)
{
if (!new_arr) { free(new_arr); return 1; }
else {
printf("%d ", new_arr[i]);
}
}
free(new_arr);
}