c语言 怎么把一个二维数组初始化为空

2024-11-23 02:18:51
推荐回答(5个)
回答(1):

利用给数组赋值时未赋值部分C系统自动赋值为0是一种方法。

还可以利用memset()函数, 它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在string.h和mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。其函数原型为:
void *memset(void*,int,unsigned);
其中void*表示起始地址,int 表示要填充的值,最后的unsigned表示填充的字节数。

例如:
#include
void main()
{
int a[10][20]={0}; //方法一,所有初始化为0
int *p[10][20]={NULL};
char c[10][20]={'\0'};

double b[50][200]};
memset(b,0,sizeof(b)); //方法二,所有初始化为0
}

回答(2):

初始化二维数组可以试试

char q[3][3]={{0}};

或者

#include 
memset(q, 0, sizeof(q));

输出没有很好的方法,你可以封装一个函数。以后都用这个函数输出。

function printArray2(arr, row, col)
{
  for(int i=0; i<=row; i++) {
     for(int j=0; j<=col; j++) {
        printf("%c",arr[i][j]);        
     }        
     printf("\n");    
  }
}

回答(3):

main()
{char q[3][4]={"abc","def","ghi"};
printf("%s\n",q);
printf("%s\n",q[2]);
printf("%c\n",q[1][2]);
getch();}

 

回答(4):

第一个数组a[100][100],把这个数组清空可以用俩种方法:
1. 用for循环逐个清零
for(i=0;i<100;i++)
for(j=0;j<100;j++)
a[i][j]=0;
2. 用里的memset函数
memset(a,0,sizeof(a));

回答(5):

清空的话有个方法,memset(q, 0, sizeof(q))。应该是这样的,没有测试