除了定义时初始化,二维数组还能怎么初始化

c/c++中除了定义时初始化,怎么把二维数组初始化为零,比如oj上非单判的题目,有时候需要把数组初始化。
不要怪我问的问题水,我是新人
求大神
除了用循环一个一个的赋值初始化,这样太慢了。

4个回答

用 memset()函数直接赋值、、、
你可以百度一下memset函数的参数含义、

暂时没想出有什么省时的办法,最多是值为0的元素可以忽略不写。

 int array[3][5] =
{
{ 1, 2  }, // row 0 = 1, 2, 0, 0, 0
{ 6, 7, 8 }, // row 1 = 6, 7, 8, 0, 0
{ 11, 12, 13, 14 } // row 2 = 11, 12, 13, 14, 0
};

或许你可以试试

array<int, 10> a = {0};
// a = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

memset的原理就是一个一个的赋值为0,参考我空间的memset,memcpy实现源码,其实内存管理这块很简单。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
二维数组不知道第二维的长度的情况下怎么进行初始化?

二维数组不知道第二维的长度的情况下怎么进行初始化?redim语句可以初始化不定长的二维数组么?

c#类里面的二维数组,byte[]初始化问题,求解

class CStareim { private int[][] _ImRes; //图像数据二维数组初始化 public int[][] ImRes { get { return _ImRes; } set { this._ImRes = value; //OnPropertyChanged("Name"); } } private byte[] _picout; //byte[]picout初始化 public byte[] picout { get { return _picout; } set { this._picout = value; //OnPropertyChanged("Name"); } } public CStareim() { this.RealTime = ""; this.Band = ""; this.picout=0 ;//怎么初始化 this.ImRes=0 ; //怎么初始化 } }

c语言二维数组初始化问题

![图片说明](https://img-ask.csdn.net/upload/201711/06/1509937541_702321.png) ``` #include <stdio.h> #include <stdlib.h> int main() { int i; char s[2][5]={"12345","12345"}; for(i=0;i<2;i++) { printf("%s\n",s[i]); } return 0; } 为什么运行是这样的不应该是12345 吗 12345 ```

在java中一维数组和二维数组有什么区别吗?

求大神指点java中一维数组和二维数组的区别,为什么一位数组是一行 二维数组可以定义多行

java 用键盘输入初始化二维数组后,遍历每一行数组时,输出结果有问题

这个问题是在写一个小程序时遇到的: 程序功能: 将两个数组合并后排序并输出: 输入: 5,3 (两个数组各自的长度) 9,6,5,3,1 (第一个数组) 7,4,2 (第二个数组) 输出: 1,2,3,4,5,6,7,9 下面是代码: public class Main2 { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int[][] arrays=new int[3][]; //用于存放输入的三行数据,每行数据都存入一个数组 for(int i=0;i<arrays.length;i++){ String str=sc.nextLine(); String[] strArray=str.split(","); for(int j=0;j<strArray.length;j++){ arrays[i]=new int[strArray.length]; arrays[i][j]=Integer.parseInt(strArray[j]); System.out.print(arrays[i][j]+","); } System.out.println(); } for(int num:arrays[1]){ //检测arrays[1]中的数据,为什么这里不对??? System.out.print(num+","); } System.out.println(); for(int num:arrays[2]){ //检测arrays[2]中的数据,为什么这里不对??? System.out.print(num+","); } System.out.println(); int[] combineArray=Arrays.copyOf(arrays[1],arrays[1].length+arrays[2].length); for(int num:combineArray){ System.out.print(num+","); } System.out.println(); System.arraycopy(arrays[2], 0, combineArray, arrays[1].length, arrays[2].length); for(int num:combineArray){ System.out.print(num+","); } System.out.println(); Arrays.sort(combineArray); for(int num:combineArray){ System.out.print(num+","); } System.out.println(); } } 为什么 for(int num:arrays[1]){ //检测arrays[1]中的数据,为什么这里不对??? System.out.print(num+","); } System.out.println(); for(int num:arrays[2]){ //检测arrays[2]中的数据,为什么这里不对??? System.out.print(num+","); } System.out.println();

关于二维数组行和列的疑问

原本一直以为二维数组和一维数组没有本质上的区别,因为很多资料上都写着,C语言没有真正的二维数组,内存里面都是和一维数组按一样的长条顺序储存的。 但是在给字符型数组赋值的时候却有了一些问题。 我尝试把超过规定列数长度的字符串赋给该二维数组,并且忽略警告 程序为 ``` int main() {char s[10][2]={"I love you","aha"}; printf("%s",s[0]); return 0; } ``` 最后输出结果为 ``` I ah ``` 这个结果让我很不解,C语言高维字符串难道自己带有行识别吗?采用行名就只能输出一行? 而且为什么莫名的带上了第二个字符串开头两个字符呢? 求大佬解答

在java中定义了一个二维数组,这样做好像不对,输出时报错, 代码如下

我是想要定义一个二维数组,然后动态地给它赋值,应该怎么做不知道问题出在做么地方,请大神指导一下 ,代码如下: int[][] a = null; a[1] = new int[]{1,2,3}; System.out.println(a[1][1]);

关于C语言中一维数组初始化的问题

第一组代码: #include <stdio.h> int main() { int i,a[10]; for(i=0;i<10;i++) printf("第%d个数:%d\n",i+1,a[i]); return 0 } 书上说这个不行,需要将a[10]改成a[10]={*******},但下面一段代码行但我觉得与第一组是一样的 第二组代码: #include <stdio.h> int main() { int i,a[10]; for(i=0;i<10;i++) a[i]=i+1; for(i=0;i<15;i++) printf("第%d个数:%d\n",i+1,a[i]); return 0 } 为什么第二种代码中的a[10]不改成a[10]={*****}

c++二维vector数组赋值的问题

建了一个二维数组(19*19): ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254415_305614.png) 初始化: ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254479_16033.png) 然后根据条件改值: ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528253301_116574.png) 赋值语句a[i] [j].safe=1;赋值成功,但是后面四行 a[i+1] f[j+1]a.safe=1; a[i+1][j-1].safe=1; a[i-1][j+1].safe=1; a[i-1][j-1].safe=1; 却无法赋值(没有越界),这是为什么呢,有什么解决办法吗? 我是通过vs2010调试观察里面的值来看出后四行没有成功赋值的

OPENCV 用二维数组初始化Mat

float a[12][11]; float b[12]; Mat A = Mat (2*g_maxCornerNumber,11, CV_64F,a); Mat B = Mat (2*g_maxCornerNumber,1, CV_64F,b); for( int i = 0; i <g_maxCornerNumber; i++ ) { a[2*i][0] = a[2*i+1][4] =vec3D[i].x; a[2*i][1] = a[2*i+1][5] =vec3D[i].y; a[2*i][2] = a[2*i+1][6] =vec3D[i].z; a[2*i][3] = a[2*i][7] = 1; a[2*i][4] = a[2*i][5] = a[2*i][6] =a[2*i][7]=a[2*i+1][0]=a[2*i+1][1]=a[2*i+1][2]=a[2*i+1][3]=0; a[2*i][8] = -vec3D[i].x*corners[i].x; a[2*i][9] = -vec3D[i].y*corners[i].x; a[2*i][10] = -vec3D[i].z*corners[i].x; a[2*i+1][8] = -vec3D[i].x*corners[i].y; a[2*i+1][9] = -vec3D[i].y*corners[i].y; a[2*i+1][10] = -vec3D[i].z*corners[i].y; b[2*i]=corners[i].x; b[2*i+1]=corners[i].y; } cout<<"输出系数矩阵为:"<<endl; cout<< A <<endl; cout<<"输出方程的值为:"<<endl; cout<< B <<endl; corners是vector<Point2f>类型; vec是自己定义的存放点的三维世界坐标的类型; 这是初始化的代码,可是输出的全是乱码,是怎么回事,求大神指点!

C语言编程(二维数组,调用函数)

编写程序:输入一个3行4列的二维数组的元素值,调用一个自定义函数求二维数组每列元素中的最小值的和值,和值通过返回值传回主函数输出

c++二维字符数组怎么部分赋值?

假设定义一个二维数组 char str[5][5]={} memset(str,'1', sizeof(str)); 那么现在的str是 * * * * * * * * * * * * * * * * * * * * * * * * * 假使我在控制台输入(回车换行,空格区分不同元素) a b c b d e f h j 怎么使str变成 a b c * * b d e f * h j * * * * * * * * * * * * *

在go中动态初始化数组大小

<div class="post-text" itemprop="text"> <p>I try to write a small application in go that takes 'x' numbers of integers from standard input, calculates the mean and gives it back. I have only gotten so far:</p> <pre><code>func main() { var elems, mean int sum := 0 fmt.Print("Number of elements? ") fmt.Scan(&amp;elems) var array = new([elems]int) for i := 0; i &lt; elems; i++ { fmt.Printf("%d . Number? ", i+1) fmt.Scan(&amp;array[i]) sum += array[i]; }............ </code></pre> <p>When trying to compile this I get the following error message:</p> <blockquote> <p>invalid array bound elems</p> </blockquote> <p>What is wrong here?</p> </div>

c++ 头文件定义数组 实现文件初始化 问题

c++ 新手 在类里定义一个数组 class A { public: A(); private: int m_a[3]; }; 在实现文件里初始化 A::A() { // 这样为什么不对 m_a = {1, 2, 3}; // 这样就可以 m_ap[0] = 1; m_ap[1] = 2; m_ap[2] = 3; } 怎样才能在实现文件里初始化 我知道有一种是用static有没有其它的方法

请编写程序,定义一个3行4列的二维数组aa并从键盘取值,求出二维数组每行中最小元素,并依次放入一维数组pp中(用C语言)

对数组不是特别熟悉,而且对数组数组一行中最小元素的判断也不懂,希望有大佬指教。

二维数组删除指定值的元素(完善代码以实现功能要求)

已知一个二维整型数组已初始化a[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{0,1,2,3,4},{6,7,8,9,0}},请删除此数组中所有等于指定值的元素,删除后,各元素依次前移。 请注意,C语言二维数组的行优先方式存储。例如:a[3][2]的数组,在内存中依次存储a[0][0],a[0][1],a[1][0],a[1][1],a[2][0],a[2][1],也就是说,先存储第“0”行的元素,再存储第“1”行的元素。 输入:一行一个整数,表示被删除的元素。 输出:若干行,每行若干个整数。(每个数占3列,每输出5个数以后换行) 运行效果如下,请完成程序中空缺代码(不允许新增变量定义和修改已有语句)。 ``` #include <stdio.h> int main(){ int i,j,count=0,num; int a[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{0,1,2,3,4},{6,7,8,9,0}}; scanf("%d",&num); for(i=0;i<5;i++) for(j=0;j<5;j++) if(a[i][j]!=num){ 【1】//请填入一行或多行代码 } for(i=0;i<5;i++){//输出 【2】//请填入一行或多行代码 printf("\n"); } return 0; } ```

怎样将二维数组作为函数返回值并在主函数中调用

我的调用函数是这样的: float(*TIME(float f_1[3][100]))[100] { for(i=0;i<=2;i++) { L_1[i][0]=-(a_1*f_1[i][0-3+100]+a_2*f_1[i][0-2+100]+a_3*f_1[i][0-1+100]+a_4*f_1[i][0]+a_5*f_1[i][0+1]+a_6*f_1[i][0+2]); L_1[i][1]=-(a_1*f_1[i][1-3+100]+a_2*f_1[i][1-2+100]+a_3*f_1[i][1-1]+a_4*f_1[i][1]+a_5*f_1[i][1+1]+a_6*f_1[i][1+2]); L_1[i][2]=-(a_1*f_1[i][2-3+100]+a_2*f_1[i][2-2]+a_3*f_1[i][2-1]+a_4*f_1[i][2]+a_5*f_1[i][2+1]+a_6*f_1[i][2+2]); for(j=3;j<=99;j++) { L_1[i][j]=-(a_1*f_1[i][j-3]+a_2*f_1[i][j-2]+a_3*f_1[i][j-1]+a_4*f_1[i][j]+a_5*f_1[i][j+1]+a_6*f_1[i][j+2]); } } return L_1; } 在主函数中调用时,用的是: float (*q)[100],(*s)[100]; *q=*TIME(&U_1[0][0]);*s=*time(&U_2[0][0]); 对二维数组作为指针的内容不是很会,还请各位大神指点

为什么初始化这个二维字符数组后输出这个数组的某一项却输出了后面的所有字符?

![图片说明](https://img-ask.csdn.net/upload/201911/13/1573633451_627541.png) 为什么初始化这个二维字符数组后输出这个数组的某一项却输出了后面的所有字符?

怎么随机给二维数组赋值,指针表示

#define M 25 #define N 25 int array[M][N]; int i, j; void Rand(int *p, int n) { p = &array[0][0]; for(i = 0;i<n;i++ { *(p + i) = rand()%100; } } 这是一维指针,要求是二维,怎么破

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

立方体线框模型透视投影 (计算机图形学实验)

计算机图形学实验 立方体线框模型透视投影 的可执行文件,亲测可运行,若需报告可以联系我,期待和各位交流

2019 AI开发者大会

2019 AI开发者大会

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

软件测试2小时入门

软件测试2小时入门

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

计算机图形学-球的光照模型课程设计

计算机图形学-球的光照模型,有代码完美运行,有课程设计书

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

fakeLocation13.5.1.zip

fakeLocation13.5.1 虚拟定位 ios13.5.1的最新驱动下载,iPhone/iPad免越狱虚拟定位工具Location-cleaned驱动已更新

UnityLicence

UnityLicence

Python可以这样学(第一季:Python内功修炼)

Python可以这样学(第一季:Python内功修炼)

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

php+mysql学生成绩管理系统

学生成绩管理系统,分三个模块:学生,教师和管理员。 管理员模块:负责学生、老师信息的增删改;发布课程信息的增删改,以便让学生选课;审核老师提交的学生成绩并且打印成绩存档;按照课号查询每个课号的学生成绩

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

推荐24个国外黄色网站欣赏

在中国清朝,明黄色的衣服只有皇子才有资格穿,慢慢的黄色在中国就成了高贵的颜色。在人们的色彩印象中,黄色也表现为暂停。所以当你的网页设计采用黄色的时候,会让人们在你的网页前停留。 黄色,就像橙色和红色,黄色也是一个暖色。它有大自然、阳光、春天的涵义,而且通常被认为是一个快乐和有希望的色彩。黄色是所有色相中最能发光的颜色,给人轻快,透明,辉煌,充满希望的色彩印象。 黄色是一个高可见的色...

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

C++语言基础视频教程

C++语言基础视频教程

玩转Python-Python3基础入门

玩转Python-Python3基础入门

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问