Chinaunix

标题: 为什么不能在函数中声明数组指针? [打印本页]

作者: zcm211    时间: 2009-04-08 17:21
标题: 为什么不能在函数中声明数组指针?
char *out[];


会提示:
错误 noname.c 85: 未定义的符号'null'在 FG_Output 函数中
作者: mik    时间: 2009-04-08 17:27
要么就指定数组的大小。
要么就定义时直接初始化
作者: zcm211    时间: 2009-04-08 17:28
原帖由 mik 于 2009-4-8 17:27 发表
要么就指定数组的大小。
要么就定义时直接初始化


char *out ="";

ok?

if not ok
how? 3X

[ 本帖最后由 zcm211 于 2009-4-8 17:30 编辑 ]
作者: 79hy    时间: 2009-04-08 17:28
原帖由 zcm211 于 2009-4-8 17:21 发表
char *out[];


会提示:
错误 noname.c 85: 未定义的符号'null'在 FG_Output 函数中

没这么定义的吧, 你总得指定你的数组的大小吧。
作者: zcm211    时间: 2009-04-08 17:30
原帖由 79hy 于 2009-4-8 17:28 发表

没这么定义的吧, 你总得指定你的数组的大小吧。


主函数里可以啊~~
作者: CMAX    时间: 2009-04-08 17:35
char *out[] = {"a","b"};
就可以了,
总得给编译器点提示啊,要不它不晓得分配多少空间给你这个数组啊
作者: zcm211    时间: 2009-04-08 17:39
原帖由 CMAX 于 2009-4-8 17:35 发表
char *out[] = {"a","b"};
就可以了,
总得给编译器点提示啊,要不它不晓得分配多少空间给你这个数组啊



我想计算得到一个字符串数组然后返回他,so……
作者: CMAX    时间: 2009-04-08 17:42
原帖由 zcm211 于 2009-4-8 17:39 发表



我想计算得到一个字符串数组然后返回他,so……


最好还是把一个指针带着一个长度返回吧
作者: zcm211    时间: 2009-04-08 17:44
原帖由 CMAX 于 2009-4-8 17:42 发表


最好还是把一个指针带着一个长度返回吧



可否说详细点,或者帮我看看我这个问题
http://bbs3.chinaunix.net/viewth ... 6amp%3Btypeid%3D133

谢谢了
作者: bladmin    时间: 2009-04-08 17:59
标题: 回复 #1 zcm211 的帖子
这是数组指针??
作者: llxxtnt    时间: 2009-04-08 18:02
你定义数组不写数组长度的么?
char *out[20];
作者: capable    时间: 2009-04-08 18:24
标题: 回复 #10 bladmin 的帖子
指针数组吧
作者: bladmin    时间: 2009-04-08 23:44
原帖由 capable 于 2009-4-8 18:24 发表
指针数组吧


对啊,我觉得是指针数组吗。就是数组里面的每个元素都是一个指针吗!

开始要是不指定长度的话,就在定义的时候初始化。
char * test[] = {"zhang","wang","li","zhao"};
要不就在定义的时候指定长度(指定长度还是建议初始化)
不知道这样成不成 char * test[10]={NULL};

新手不是很明白,大家指教!
作者: beepbug    时间: 2009-04-09 07:56
这个是要放在栈里的。栈是大家伙共用的。你压进去了,可占多大地盘没告诉,别人怎么压?甭说别人,就是你自己要弹出了,弹出多少字节呢?弹出少了,没把你弹完,弹出多了,把别人也弹出了。
不知道新标准支不支持你?

[ 本帖最后由 beepbug 于 2009-4-9 18:08 编辑 ]
作者: 雨过白鹭洲    时间: 2009-04-09 09:09
字符串指针的数组
作者: 皇家救星    时间: 2009-04-09 09:34
这样的写法只能出现在函数参数里面

如int main(int argc, char *argv[])
作者: zcm211    时间: 2009-04-09 09:41
谢楼上各位。
作者: emacsnw    时间: 2009-04-09 12:23
原帖由 皇家救星 于 2009-4-8 17:34 发表
这样的写法只能出现在函数参数里面

如int main(int argc, char *argv[])


这里 argv 的类型已经退化为 char** 了,和数组没关系。
作者: astezheng    时间: 2009-04-09 13:01
标题: 回复 #17 zcm211 的帖子
你那个是指针数组

数组指针是
char (*parr)[长度];
这个parr才是一个数组指针




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2