C语言中怎样定义一个字符型的二维数组赋值并输出啊?

C语言中怎样定义一个字符型的二维数组赋值并输出啊?为什么总是报“array bound overflow数组越界呢?”比如这样定义:
str[30][30]={"hello\0""hello world\0"...}为什么不对呢?

#include<stdio.h>
#define M 5
#define N 3
void main()
{
int i,j;
char c[M][N]={'H','e','l','l','o',' ','c','!'};//定义数组
for(i=0;i<M;i++)//输出数组
for(j=0;j<N;j++)
printf("%c",c[i][j]);
printf("\n");
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15
str[3][20]={"hello","world","hello world"}
3代表有三个字符串,20代表每个字符串的最大长度,/0不用加,是字符串的话自己会加上去的
第2个回答  2013-08-15
最好定义一个指针字符数组,不浪费内存
char *str[]={"hello","helloworld"};
第3个回答  2013-08-15
char *str={"hello","helloworld"};
第4个回答  2013-08-15
char str[30][30]={"hello","hello world"};
相似回答