当前位置: 代码迷 >> C语言 >> 关于指针数组的问题
  详细解决方案

关于指针数组的问题

热度:74   发布时间:2007-10-28 22:35:44.0
来人啊
----------------解决方案--------------------------------------------------------

你的程序有很多问题诶


----------------解决方案--------------------------------------------------------

三楼说的很清楚了啊
scanf("%s",a[i]);
这句话就是 给数组单元a[i]中的那个地址内存 为首地址写字符串。
但是你的cahr *a[N]中并没有初始化这些地址啊
所以一旦申请好了a[N]数组 数组中各个单元是任意的值 系统都把它看成地址来 给字符串
有些地址可能指向的 是操作系统区的话 就会提示错误 该内存不能写啊。
懂没?


----------------解决方案--------------------------------------------------------

使有指针,要先给它一个明确的指向,不然有可能会发生随机性的错误!


----------------解决方案--------------------------------------------------------
以下是引用chmlqw在2007-10-28 21:40:32的发言:

因为输入的字符串大小不确定,所以我故意用 *a[N]的,
如果用2维数组做,我会的。现在就是想弄清楚,为什么会错....

数组的大小不确定在C里是不行的。
建议用NEW操作


----------------解决方案--------------------------------------------------------
回复:(wtyj112)三楼说的很清楚了啊scanf(

哦,谢谢
那我再问下,那我要怎么给指针数组初始化呢? 用malloc开辟?但是malloc 开辟的话,长度就是给定的了。就不能达到预想的效果了嘛


----------------解决方案--------------------------------------------------------
15楼,什么是NEW操作......
----------------解决方案--------------------------------------------------------

你预想的效果是什么?


----------------解决方案--------------------------------------------------------
就是可以定义一个长度为任意值的的数组啊
如果用malloc开辟空间,则必须指定大小嘛
----------------解决方案--------------------------------------------------------
c语言不允许你定义这样的数组啊
除非自己写个函数来 生成类数组的 结构
----------------解决方案--------------------------------------------------------
  相关解决方案