阅读:1956回复:6
指向结构体类型指针的数组
在下列程序中申明了指针数组hunam *man[20], 当我欲把man作为函数参数之前, 需要初始化这个指针数组空间, 但除了一个一个数组元素的初始化之外(比如:man[0] = getHuman(...), getHuman()返回一个human类型的指针), 我还有什么办法为这个指针数组初始化, 或是让它做为rp()函数的参数传进去而不会报错呢?
请教各位大师 typedef struct human { char name[20]; favorite *favorites[2]; int age; }human; int rp(human *man[]) { .......... } void main(void) { human *man[20]; ...... rp(man); } |
|
沙发#
发布于:2005-06-06 11:35
可否用C++?
|
|
|
板凳#
发布于:2005-06-06 13:13
你是说对于C的话, 非得初始化数组中的每一个指针空间吗??
C++ 支持这样的特性, 不需要初始化指针数组空间?? 还是传递引用? |
|
地板#
发布于:2005-06-06 13:29
C++里不是类可以有构造函数么?
个人感觉:你这样写不太好。如果这样 int rp(human *man) { .......... } void main(void) { human man[20] = {...}; ...... rp(man); } 就可以了。 或者在human中重载‘=’运算符。这样来达到“man[0] = getHuman(...), getHuman()”。 |
|
|
地下室#
发布于:2005-06-06 13:54
to maqian:
改用C++是不可能了, 整个工程是在linux下的一支标准C程序, 要是把rp函数改成int rp(human *man), 我估计可能可以, 但这样一来, 源程序有太多太多的地方需要修改, 麻烦啊 |
|
5楼#
发布于:2005-06-06 14:12
那你是不是先把指针数组hunam *man[20]初始为NULL,好在rp函数中有个判断的依据.
|
|
|
6楼#
发布于:2005-06-06 15:23
现在看来, 可能不是这个问题所致, 程序运行到rp函数前边, 根本不进入rp函数, 提示段地址出错
|
|