c语言 怎么把一个二维数组初始化为空
发布时间:2025-05-12 09:07:17 发布人:远客网络
一、c语言 怎么把一个二维数组初始化为空
1、利用给数组赋值时未赋值部分C系统自动赋值为0是一种方法。
2、还可以利用memset()函数,它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在string.h和mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。其函数原型为:
3、void*memset(void*,int,unsigned);
4、其中void*表示起始地址,int表示要填充的值,最后的unsigned表示填充的字节数。
5、int a[10][20]={0};//方法一,所有初始化为0
6、char c[10][20]={'\0'};
7、memset(b,0,sizeof(b));//方法二,所有初始化为0
二、C语言中,如何判断一个字符数组是空的
那要看你字符数组定义的时候有没有给初值。
比如char a[10];这元素值都是随机值,无法判断。
如果char a[10]={'a','b','c','d','e'};这样除了前5的元素后面都是0。可以用0来判断。
如果char a[10]="abcde";这样由于“abcde”是字符串常量,内存中实际还有最后一个0.所以a数组中第6位就是0。同样可以用0来判断。
所有有结束符号0的数组,都可以使用<shring.h>头文件下的函数int strlen(char*)来获得字符数组中元素个数。
三、c语言数组个数未知怎么处理
1、C语言在数组个数未知的情况下,根据应用情况不同,有三种方式。
2、1,数组元素总数未知,但是需要存储的内容是已知的。
3、其实这是一种变相的已知个数,只是编程者不去计算总个数,把这个工作交给系统来做。这时可以通过数组个数留空,显式初始化数组进行声明。
4、char s[]="this is a test string";
5、就是初始化了这样一个数组s,其空间个数隐式的由初始化字符串决定。
6、2,数组元素总数未知,但最大规模已知。
7、比如不知道数组的总个数,但是确定不会超过100个,那么就可以定义一个100个元素的数组,供存储调用。
8、通过malloc函数,可以动态的分配数组,然后记录下当前分配的数组元素个数,并使用该数组。当数组空间不足时,可以通过realloc函数,重新分配空间,扩大数组元素个数。
9、int*p=(int*)malloc(sizeof(int)* 100);//初始化分配100个元素空间。用size保存当前数组规模。
10、p= realloc(sizeof(int)*(size+ 100), p);//当空间不足时,增加100个元素。
11、size+=100;//需要注意的是,必须同步维护size的大小,否则会出错。