指针数组2
发布网友
发布时间:2023-10-11 08:15
我来回答
共2个回答
热心网友
时间:2024-11-23 08:03
你的字符串数组的定义有问题。
char* s[10];这一句只是定义了一个指针数组,里面每一个元素都是指针,但是这些指针都没有分配存储空间。比如char* str;str="sssss";是错误的,无法运行。
更改方法:由于你的字符串长度都是未知的(因为是你从键盘输入的,输入多长又不知道),所以对这些指针分配空间还是有点麻烦的,要么,设定一个很大的长度作为界限,比如1000,那么,你就可以用一个for循环来这些指针分配空间了
for(i=0;i!=10;i++)
{
s[i]=malloc(1000*sizeof(char));
}
要么,就只能用输入字符,然后再将字符复制到字符串中,如果字符串长度不够了,就要用realoc重新分配空间。
或者你会用c++的话,直接用string类型。
希望你明白了,不然就白说了。
热心网友
时间:2024-11-23 08:03
主函数中的第一个int max_len(char *s[],int n)应该放在主函数外面,不要放在里面,应该叫函数声明。看看行不行。