2 maolitao 111 maolitao_111 于 2014.08.31 09:41 提问

一个c++指针的问题,要求编写一个函数

有这样一个题,要求编写一个函数,以char指针数组和数组中的指针数量作为参数,返回最长字符串的地址。我想请问这个函数的返回值的类型是什么呢?也就是说在声明函数时函数类型应该是
char *** 还是其他呢?因为我认为 **char *** 指的是返回一个指向单个字符的指针而不是指向字符串的指针,而且这个函数怎么编写呢?以下是我写的源代码,虽然通过了编译,但是在运行时崩溃了
** **char
* maxn( char *** arr[],int len)
{
**char
**max;*
max=arr[0];
for(int i=1;i max=(strlen(max)>strlen(arr[i]))?max:arr[i];
return max;
}**
还有,在请求动态分配一个指向字符串的指针数组时,应该是
(char *) * pt = new (char *) [len]

还是
(char) * pt = new char [len]
呢,小弟是新手,各位高手勿喷啊

2个回答

lym753024200
lym753024200   2014.08.31 19:50

返回char*,下面那个是正确的内存分配

diqiu50
diqiu50   2014.08.31 23:19
char* maxn(char** array, int size) {
    max=arr[0];
    for(int i=1;i max=(strlen(max)>strlen(arr[i]))?max:arr[i];
     return max;}
} 

new 的时候:
(char *) * pt = new (char *) [len]
这个正确。
还需要
pt[i]= new char[n];
来new数组元素。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!