猿问

C语言二维动态数组赋值问题

请问一下,如何对一个动态二维数组赋初值呢?
qlzy
浏览 2105回答 1
1回答

onemoo

你所谓的“动态”,应该是指new出来的吧?C语言中所谓动态,就是用new申请一块内存,然后依需要来使用之。而“初值”指的是对象在定义的同时赋予的值。所以严格地说,new出来的东西是没有“初值”的(当然申请到的内存中会带有随机值,但你并不能在申请内存的同时指定“初值”)。那么抛开“初值”这个概念不谈,其实你得到new出来的内存后,只要向其中赋你需要的值就好了——对于你说的数组,就给每个元素赋值即可。另外说一个实践中常用的方法:就像前面提到的,new出来的内存中的值是不确定的。而你申请了一个数组,也许希望这是个“全新”的数组(所有元素的值都为0)。但一开始就要把所有元素都赋值为0很麻烦,所以可以这样做:你知道你申请的这一块内存有多大,那么直接使用库中的 memset 函数(在<string.h>头文件中)把这段内存填0,这样数组中的全部元素也就都是0了。当然如果你这个数组中元素不是简单类型、需要各个元素都有独特的“初值”的话,那你只能一个个元素地赋值。
随时随地看视频慕课网APP
我要回答