关于 vc++ char* 的问题

inta=4;char*b[]={"1","2","3","4","5"};现在我想要把a转化成字符形并且赋值给b[]的第一个字符串,使其变成{"4","2","3","... int a=4;
char * b[]={"1","2","3","4","5"};
现在我想要把a转化成字符形并且赋值给b[]的第一个字符串,使其变成{"4","2","3","4","5"},应该怎么做呢?
我试过这么做,但是报错了:
_itoa(a,b[0],10);
展开
 我来答
mjl86
2010-07-21 · TA获得超过344个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:398万
展开全部
char * b[]={"1","2","3","4","5"};
相当于 char * b[5]={"1","2","3","4","5"};
就是定义5个指针,分别指向5个字符串"1","2","3","4","5",
我们知道这个五个字符串是常量,放在程序的静态缓冲区,是只读的。不可以修改只读的内存区。

就像 char*p = "hello word"; p[0] = 'H';//这样做是非法的

你的代码可以改成:

char a[5][2]={"1","2","3","4","5"};//不是静态内存
char * b[]={a[0],a[1],a[2],a[3],a[4]};
int a=4;
b[0][0] = '0'+a;
河蟹和谐河蟹
2010-07-21 · TA获得超过1156个赞
知道小有建树答主
回答量:1028
采纳率:0%
帮助的人:789万
展开全部
最好用
char b[5][10] = {"1","2","3","4","5"};
itoa(a,*(char*(&b[0])),10);
或者
char b[5] = {'1','2','3','4','5'};
itoa(a,b[0],10);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TT_RonG
2010-07-21 · TA获得超过156个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:238万
展开全部
试一下,
CString s;
s.Format(" %s ",a);
再把s赋值进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
futureisgood
2010-07-21 · TA获得超过217个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:146万
展开全部
不能用指针数组,如果你这么赋初值就相当于让指针指向"4","2","3"这样的字符串常量,常量当然不允许修改了。
只能用字符数组解决这个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式