急,送分,请大虾救我!
两个问题,C的,很简单,但我不会,请大虾赐教,重谢:
1.
一个函数原型如下所示:
int GetArrayLength(int* Array)
{
......
....
}
想得到未定int数组Array的长度(Array的元素数),请问代码如何编写?
2.函数原型如下
char * GetSubString(int iStartIndex,int iLastIndex,const char * ResourceString)
{
.....
......
}
请问如何得到ResourceString数组中从iStartIndex到iLastIndex之间的字符,并返回这些字符(要防止返回无效指针和内存泄露)?
问题点数:0、回复次数:4Top
1 楼fireyou(我是菜鸟,我容易吗?)回复于 2003-12-02 20:47:42 得分 0
我现在在外面玩
等我后天回家了帮你看看!Top
2 楼zhangfjj(小张)回复于 2003-12-02 20:55:12 得分 0
1.
一个函数原型如下所示:
int GetArrayLength(int* Array)
{
......
....
}
----------------------------------
这个问题不简单,是一个不可能完成的任务,用数组名做参数,传递给指针Array的仅仅是该数组的首元素的地址,数组的大小丢失了,且在C中对数组不做越界检查,所以说你这个任务是不可能完成的。在使用数组名做参数时,往往增加一个int型参数,用以传递数组的大小。
函数原型如下:
int GetArrayLength(int* Array,int n)
{
......
....
}
Top
3 楼skywarship(很菜的小李)回复于 2003-12-02 20:55:27 得分 0
对于第一个,我认为不可能实现,因为数组不存储自身的大小,数组名只是一个地址标识
至于第二个,分配iLastIndex-iStartIndex+1大小的内存,将原串中的字符一个个拷过来就行了Top
4 楼byyyyy(苦行僧【苦】)回复于 2003-12-02 21:36:19 得分 0
char * GetSubString(int iStartIndex,int iLastIndex,const char * ResourceString)
{
.....
......
}
你可以考虑参考CString的Mid和Right,Left方法Top




