C语言 一维数组叠加为二维数组样例
2016-02-26 09:41
344 查看
这里参看memcpy的用法,将一个一维整型数组不停的叠加为二维数组
使用宏定义来控制二维数组的行列
代码如下:
重要的是体会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[7] = {1,2,3,4,5,6,7}; int arr2D[MAX_RANK][MAX_COLUMN]; int i,j; //一维维整型数组叠加转换为二维整型数组 for(i=0;i<MAX_RANK;i++) { //重要,1:目的地址 2:源地址 3:复制字节数 memcpy(arr2D[i],&arr1D,7*sizeof(int)); } //二维整型数组打印显示 for(i=0;i<MAX_RANK;i++) { for(j=0;j<MAX_COLUMN;j++) { printf("%d ", arr2D[i][j]); } printf("\n"); } system("pause"); return 0; }
重要的是体会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[7] = {1,2,3,4,5,6,7}; int arr2D[MAX_RANK][MAX_COLUMN]; int countRank=0; //一维维整型数组叠加转换为二维整型数组 //for(countRank=0;countRank<MAX_RANK;countRank++) //{ while(true) { memcpy(arr2D[countRank],&arr1D,7*sizeof(int));//重要,1:目的地址 2:源地址 3:复制字节数 countRank++; //顺序保证从0~MAX_RANK-1 if(countRank % MAX_RANK ==0) //注意优先级问题 { break; //交还执行权 } } //} int i,j; //二维整型数组打印显示 for(i=0;i<MAX_RANK;i++) { for(j=0;j<MAX_COLUMN;j++) { printf("%d ", arr2D[i][j]); } printf("\n"); } system("pause"); return 0; }
相关文章推荐
- c语言函数调用栈的变化
- 关于C++中的友元函数的总结
- C语言多个源文件编译
- C语言一维数组转换为二维数组
- 友元函数和友元类
- C++ Const引用详解
- 1054. The Dominant Color (20)
- Andriod学习笔记5:通过NDK在C++中实现日志输出
- MS-MPI+boost 编译
- C++中this指针的用法详解
- C++类static、const和static const 以及它们的初始化
- c++我在努力----第三次作业体会
- C++ 内存分布,编译与运行阶段探索?(暂时不确定标题)
- 总结了些c的最基础知识
- C++(学习笔记)一:声明及定义
- 在VS2015中用C++创建动态库并用C#调用
- Cpp_构造函数
- 学长的训诫C++
- C语言的整型和长整型的字节长
- Cpp_类和对象