各位有什么好的做法(思路)?说说!

congzijun 2003-12-21 01:11:30
是这样一个问题:
我调用别人的一个函数大概是这样的:abc(char**m)
m的定义是char *m[]={"123","456",}
abc(m);
我现在仍然的调用abc();函数,但是我想让m是动态的,我输入n,m就有n个元素并可接下来调用abc(),
大家有什么好的解决法,想一想,说一说!
我的想法是用动态分配空间,来取代数组m,m是一个指针数组,
char *p;
p = (char *)malloc(n);
for(i=0;i<n;i++)
memcpy(p+i,第i个字符串的指针);
abc(p);
这样可以么????????
...全文
19 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanmm 2003-12-22
  • 打赏
  • 举报
回复
--------
char *p;
p = (char *)malloc(n);
for(i=0;i<n;i++)
memcpy(p+i,第i个字符串的指针);
abc(p);
--------

abc()的参数是char**
而p是一个char*
所以这个地方是不是应该是abc(&p)才对呢?
ssbull 2003-12-21
  • 打赏
  • 举报
回复
如果你是想处理字符串的话,我感觉你用string类来处理比较方便,你说的那种情况,用string类作如下处理即可
#include<string>
#include<iostrea>
using namespace std;

void abc(string *str,int n) {
//比如作如下处理
for(int i=0;i<n;i++)
cout<<str[i]<<endl;
}
void main() {
int n;
cin>>n;
string *str=new string[n];
//给str的每一个元素赋值
abc(str);
}
junnyfeng 2003-12-21
  • 打赏
  • 举报
回复
char **p;
p = (char **)malloc(n);
for(i=0;i<n;i++)
p+i= 第i个字符串的指针;
abc(p);
evlon 2003-12-21
  • 打赏
  • 举报
回复
char **p;
p = (char **)malloc(n);
for(i=0;i<n;i++)
p[i=第i个字符串的指针;
abc(p);
qinxiaolin 2003-12-21
  • 打赏
  • 举报
回复
abc函数的作用是什么呢?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧