C语言 一维数组叠加为二维数组样例
这里参看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语言 一维数组叠加为二维数组样例的更多相关文章
- C语言数组:C语言数组定义、二维数组、动态数组、字符串数组
1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include &l ...
- PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
如题:如何判断一个数组是一维数组或者是二维数组?用什么函数? 判断数量即可 <?php if (count($array) == count($array, 1)) { echo '是一维数组' ...
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...
- C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数
1. 数组名 C语言中的数组名是一个特殊的存在, 从本质上来讲, 数组名是一个地址, 我们可以打印一个指针的值,和打印一个数组的值来观察出这个本质: int nArray[10] ={ 0 }; in ...
- 论C语言中二级指针和二维数组之间的区别
刚开始学习C语言的时候,觉得一个数组可以定义一个一级指针去访问,想当然的就觉得可以定义一个二级指针去访问二维数组.很显然这是错误的. 我们来看看C语言的数组在内存中的存储方式. 实际上C语言中的数组, ...
- c语言,指针与数组--指针与二维数组2
指向一维数组的指针 char (*p)[10] ;指向一维数组的指针类型 typedef char(*TYPE_P2ARRAY)[10] ; 该指针可以指向数组 ,且使用起来效果节本相同, ...
- js将一个具有相同键值对的一维数组转换成二维数组
这两天,一个前端朋友在面试的笔试过程中遇到了一道类似于"用js实现将一个具有相同code值的一维数组转换成相同code值在一起的二维数组"的题目.他面试过后,把这个问题抛给了我,问 ...
- js将一维数组转化为二维数组
遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...
- C语言批量数据到动态二维数组
上一篇文章将文件读取放到静态创建的二维数组中,可是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能由于大量的数据而产生溢出呢,近期一直研究里malloc函数.通过它 ...
随机推荐
- 计算器之webservice实现
以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址 一.根据我的上一篇博客 MyEclipse构建Web Service(Xf ...
- HDU 5621 KK's Point
N个点中任意选取四个点,就能产生一个圆内的交点,所以圆内总共有C(N,4)个交点,圆上有N个,相加就可以了. 注意:组合数运算的时候会爆longlong,中间先除一下就可以了. #include &l ...
- C#-WebForm-AJAX阿贾克斯(一)基本格式
AJAX 即" Asynchronous Javascript And XML "(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异 ...
- request参数集合绑定实体实现defaultmodebinder
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- CentOS编译安装LNMP环境
这里是教大家如何在centos下利用源码编译安装LNMP环境. 工具/原料 centos服务器一台 自用电脑一台 准备篇 配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 配置防火墙,开 ...
- leetcode--003 LRU cache
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABHAAAACmCAIAAAA9PO+sAAAgAElEQVR4nO3du3HbytvH8X8zqoB12A ...
- DialogFragment学习笔记
创建DialogFragment 跟通常的创建Fragment差不多,XML,继承DialogFragment,复写onCreateView() public View onCreateView(La ...
- java学习(二)--excel导出
public static String writeFile(String fileName, String[][] content) { WritableWorkbook wwb = null; S ...
- 深度学习caffe:Ubuntu16.04安装指南(1)
caffe [CPU ONLY] 2017-01-15 最简单的安装配置方式: 不用GPU加速,使用OPENCV2.4图像库, 这是根据官方教程(链接如下)简化而得到. Ubuntu 16.04 or ...
- sql语句:if exists语句使用
') begin print('exists ') end else begin print('no exists ') end go