关于字符串指针数组初始化问题

tigermount 2002-01-25 09:30:27
char *p[4]=new char [][4],不知为何通不过,另外对于*p[4]该如何赋值,是不是只能初始化赋值,不能用cin?
例如:char *p[4]={"asd","df","ads","dfg"};
...全文
2032 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
renli21 2002-01-26
  • 打赏
  • 举报
回复
Think in C++
The C++ Programming Language
Effective C++
More Effective C++
^^^^^^^^^^^^^^^^^^

书籍仍在增加,
注册用户可长期免费下载。

http://pat.chinaccd.net/cpp
tigermount 2002-01-26
  • 打赏
  • 举报
回复
谢谢bluekite(bluekite),非常感谢
darkdarktemplar 2002-01-26
  • 打赏
  • 举报
回复
operator new 有两种调用就是new,new[],所以你这样是不行的
binbin_yang 2002-01-26
  • 打赏
  • 举报
回复
抱歉,想了一下,我说的好象不正确,应该是这样的new char*[4],是给指针分配空间,然后用strcpy()就是对指针进行初始化!
binbin_yang 2002-01-26
  • 打赏
  • 举报
回复
char *p[4]是指一个有四元组的数组,且每个元素都是指向字符串变量的指针!
如果想初始化‘new char [][4]“这中用法是错误的,应为new char[4],你的初始化方式是正确的,也可以用cin ,不过需要加一些临时变量;如:
char *b;
cin>>b;
strcpy(p[n],b);
即可!你自己试吧,我没有验证!
梅雪香 2002-01-26
  • 打赏
  • 举报
回复
网上真不错!可惜钱太少,现在好了:),反正闲着也是闲着,
找了一个不要身份证,不要会员费,
只要有个地址,就能挣到钱的网站, 不用开广告条哦!
申请成了会员……(反正挣不到钱也不会吃亏^o^)
等了一个月,两个月……
什么汇款单?连个影子都没有!
不过一想,无所谓了……反正也没吃亏… ^^
就当是鬼迷心窍一回吧!
可一直到了3个月……
突然……汇款单到了?! 不看不知道,一看吓一跳!
9百多美金?折合人民币不就是7千多了吗?
半信半疑,到了银行,交了几十元的手续费,换回了7千多……
真像做梦一样……买了一些一直想买的东东……
兴奋之余,又开始了我的宣传!宣传越多,挣的越多吗 ^o^
果然,不到一个月,又飞来了一张单子!
1千3百多美金…… 真是难以置信!
又过了一个月上涨到了2千4百多美金……
如今,不用上班也有钱花了,真是乐哉乐哉!
你不信?那没办法!只可惜这白花花的银子喽……
不过,古人云:“宁可信其有,不可信其无”啊……
反正也不吃亏,就当疯一回试试看嘛……
相信我,没错的!
****加入方法*** 很简单的哦***

http://www.MintMail.com/?m=2048603
进入上面网站(复制、粘贴到地址栏)
打开网页,点击右上方 click here 活动图标,
或点击蓝色 FREE Sign-up page 字样也可!
然后,跟着提示,一步一步输入信息就ok了。
值得高兴的是它能识别中文信息,而能100%加入!
下面是我为了方便大家的加入详细说明了加入过程中的细节
- First name*: 名字(例:冬泉 )
- Last Name*: 性 (例:谢 )
- Company Name: 可不填
- Street Address*: 家庭住址:(一定要详细填写,不然收不到汇款单喽!)
例:上海市 **地方
- City*: 城市名 (例:ShangHai 英文填写 )
- State*: 可不填
- Zip*: 邮编 ( 填 000-000 )
- Country*: 国家( 选 china )
- Phone*: 电话号码 ( 国家代码 86 + 去掉区位号前0 的电话号码)
例:010-64243365 → 86-10-64243365)
- Fax: 可不填
- E-mail*: 电子信箱(所有的交流都通过信箱传递,所以务必填写正确)
- Confirm E-mail*: 再次输入信箱地址 *****
- Year of birth*: 出生年例:1970、1980
- Gender*: 性别 Male(男), Femaie (女)
- Password*: 密码 (6位以上)******
- Confirm Password: 确认密码 (必须与上相同)******
- how do you want to receive commission
E-mail- how do you want to receive commissions that you earn?
以什么形式接收礼品?
*gift certificates(double$$) 奖品 *cash 现金
如要奖品能收到双倍价格的东西,
但都是一些英文版的书籍、磁带、光盘 等
对于中国人来说,还是选择现金比较合算些,请选择 cash
- do you want to be notified when your referrals sing up?
加入会员成功时通知你吗?选 yes
- MintMail.com 请选择自己的爱好或兴趣 (最多可选10种)
- Submit 点击它 屏幕上就会出现 thank you 的字样
如果想赚钱的话,就请完全复制以上内容,到各个网站的留言版去发表,就OK了。
1.填单
2.张贴
3.赚钱
bluekite 2002-01-26
  • 打赏
  • 举报
回复
你是想為一個指針數組的每個指針一次性分配內存吧。
這樣子的話,我到是還沒有看過了。。不知道行不行。

你應該為每個指針分次的分配內存才比較正規一點。
例如 :
char* p[4] = {NULL};
int iSize = 10;
for( int i = 0; i < 4; i++ )
p[i] = new char[iSize];

//(對於初學者來說,都要養成一種要習慣,new回來的東西都要看一下是否為NULL)

你的例子中 :char *p[4]={"asd","df","ads","dfg"};
這樣子是可以的,但p指針所指向的{"asd","df","ads","dfg"}這些是系統給你的隻是臨時性的內存。。你最好是不要改變他們的內容。
應該這樣子寫才好一點。
const char *p[4]={"asd","df","ads","dfg"};

69,371

社区成员

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

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