这里参看memcpy的用法,将一个一维整型数组不停的叠加为二维数组

使用宏定义来控制二维数组的行列

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h> #define MAX_RANK 15
#define MAX_COLUMN 7 int main(int argc, char *argv[])
{
int arr1D[] = {,,,,,,};
int arr2D[MAX_RANK][MAX_COLUMN];
int i,j; //一维维整型数组叠加转换为二维整型数组
for(i=;i<MAX_RANK;i++)
{
//重要,1:目的地址 2:源地址 3:复制字节数
memcpy(arr2D[i],&arr1D,*sizeof(int)); }
//二维整型数组打印显示
for(i=;i<MAX_RANK;i++)
{
for(j=;j<MAX_COLUMN;j++)
{
printf("%d ", arr2D[i][j]);
}
printf("\n");
}
system("pause");
return ;
}

重要的是体会memcpy三个参数的用法,之后就好做了

将代码改进,for循环改为while循环,使代码符合Linux下多线程的操作,当数据填充满二维数组后将交换执行权:

#include <stdio.h>
#include <stdlib.h>
#include <string.h> #define MAX_RANK 15
#define MAX_COLUMN 7 int main(int argc, char *argv[])
{
int arr1D[] = {,,,,,,};
int arr2D[MAX_RANK][MAX_COLUMN]; int countRank=;
//一维维整型数组叠加转换为二维整型数组
//for(countRank=0;countRank<MAX_RANK;countRank++)
//{
while(true)
{ memcpy(arr2D[countRank],&arr1D,*sizeof(int));//重要,1:目的地址 2:源地址 3:复制字节数
countRank++; //顺序保证从0~MAX_RANK-1
if(countRank % MAX_RANK ==) //注意优先级问题
{
break; //交还执行权
}
}
//} int i,j;
//二维整型数组打印显示
for(i=;i<MAX_RANK;i++)
{
for(j=;j<MAX_COLUMN;j++)
{
printf("%d ", arr2D[i][j]);
}
printf("\n");
}
system("pause");
return ;
}

C语言 一维数组叠加为二维数组样例的更多相关文章

  1. C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

    1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include &l ...

  2. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?

    如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...

  3. 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作

    二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...

  4. C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数

    1. 数组名 C语言中的数组名是一个特殊的存在, 从本质上来讲, 数组名是一个地址, 我们可以打印一个指针的值,和打印一个数组的值来观察出这个本质: int nArray[10] ={ 0 }; in ...

  5. 论C语言中二级指针和二维数组之间的区别

    刚开始学习C语言的时候,觉得一个数组可以定义一个一级指针去访问,想当然的就觉得可以定义一个二级指针去访问二维数组.很显然这是错误的. 我们来看看C语言的数组在内存中的存储方式. 实际上C语言中的数组, ...

  6. c语言,指针与数组--指针与二维数组2

    指向一维数组的指针   char (*p)[10] ;指向一维数组的指针类型 typedef  char(*TYPE_P2ARRAY)[10]  ;   该指针可以指向数组 ,且使用起来效果节本相同, ...

  7. js将一个具有相同键值对的一维数组转换成二维数组

    这两天,一个前端朋友在面试的笔试过程中遇到了一道类似于"用js实现将一个具有相同code值的一维数组转换成相同code值在一起的二维数组"的题目.他面试过后,把这个问题抛给了我,问 ...

  8. js将一维数组转化为二维数组

    遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...

  9. C语言批量数据到动态二维数组

    上一篇文章将文件读取放到静态创建的二维数组中,可是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能由于大量的数据而产生溢出呢,近期一直研究里malloc函数.通过它 ...

随机推荐

  1. echarts 系列一

    由于近期项目需要做地图方便的可视化图标,经过比较最终选定echarts. echarts在可视化视图方面非常强大,可以满足大多数开发需求. 采用标签式引入js文件,引用的js 文件位置 echarts ...

  2. hadoop+海量数据面试题汇总(一)

    hadoop面试题 Q1. Name the most common InputFormats defined in Hadoop? Which one is default ? Following  ...

  3. HTML学习(五)链接

    1.创建文本链接 <html> <body> <p> <a href="/index.html">本文本</a> 是一个 ...

  4. Thinking in scala (6)----高阶函数----返回一个函数

    在Thinking in scala (5)----高阶函数* 里面,我们演示了如何把一个函数作为参数传递给另外一个函数. 在本文里面,我们来演示函数式编程另外一个重要的特性:返回一个函数.首先来看这 ...

  5. bzoj2628: JZPSTR

    Description 问题描述 你要对一个字符串进行三种操作: 0. 在位置x_i处插入一个字符串y_i 1. 删除位置[x_i, y_i)的字符串 2. 查询位置[x_i, y_i)的字符串包含多 ...

  6. dom对象中的this和event.target区别

    1.this是事件冒泡,动态变化.先触发内部事件,由内到外的执行. <script> function testdiv(val){ console.log(val.id); } funct ...

  7. HTML 表单元素之 input 元素

    介绍HTML 5: 表单元素之 input 元素 表单元素之 input 元素 - text, password, url, telephone, email, search, file, radio ...

  8. Unity中使用多构造函数

    如果要实例化的类只有一个构造函数, 则使用方法很简单使用方法如下: 1 2 3 4 5 6 7 using (IUnityContainer container = new UnityContaine ...

  9. web前端好学吗?

    最近这段时间许多学生讨论关于WEB前端工程师这个职位的问题.比如:关于前端难不难?好不好找工作?有没有用?好不好学?待遇好不好?好不好转其他的职位? 针对这个问题,课工场露露老师想跟大家谈谈自己对前端 ...

  10. 八 Appium常用方法介绍

    由于appium是扩展了Webdriver协议,所以可以使用webdriver提供的方法,比如在处理webview页面,完全可以使用webdriver中的方法.当然在原生应用中,也可以使用. 1.元素 ...