你的程序有很多问题诶
三楼说的很清楚了啊scanf("%s",a[i]);这句话就是 给数组单元a[i]中的那个地址内存 为首地址写字符串。但是你的cahr *a[N]中并没有初始化这些地址啊所以一旦申请好了a[N]数组 数组中各个单元是任意的值 系统都把它看成地址来 给字符串有些地址可能指向的 是操作系统区的话 就会提示错误 该内存不能写啊。懂没?
使有指针,要先给它一个明确的指向,不然有可能会发生随机性的错误!
因为输入的字符串大小不确定,所以我故意用 *a[N]的,如果用2维数组做,我会的。现在就是想弄清楚,为什么会错....
数组的大小不确定在C里是不行的。建议用NEW操作
哦,谢谢那我再问下,那我要怎么给指针数组初始化呢? 用malloc开辟?但是malloc 开辟的话,长度就是给定的了。就不能达到预想的效果了嘛
你预想的效果是什么?