求问这个C++程序为什么是错的.

求问这个C++程序为什么是错的.

问题描述:

图片说明
复制上来的不能正常显示只能上图了....
对cin和指针的概念理解还不是很好...期望有大神能解答...

char *str[arsize]声明的是一个指针数组,数组的每个元素都是一个指针。单独的指针只是指向了一个内存地址,你必须要先申请一个可以使用的内存区间,然后把指针指向这个区间,以后才能向指针指向的区域赋值。这个过程叫做指针的初始化。
cin>>str[a]就是一个典型的没有初始化指针,就向指针区域赋值的错误例子。
要修改的话,把指针数组的声明,换成2维数组就可以了。char str[arsize][200]