| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1377 人关注过本帖
标题:字符&指针&多维数组 结合 感觉转不过来了。
只看楼主 加入收藏
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
结帖率:75%
收藏
 问题点数:0 回复次数:2 
字符&指针&多维数组 结合 感觉转不过来了。
看着书说明,一步步倒是做出来了,看着都懂
 再去重头想,一点头绪都没了

书上说不建议使用数组与指针
数组可以用 vector 替代 ,指针呢?

程序代码:
int main()
{

int  ia[3][4]  =  { 
   {0, 1, 2, 3} ,
   {4, 5, 6, 7} ,      
   {8, 9, 10, 11} }; 

for(int (*p)[4]=ia;p!=ia+3;++p){
    for(int *q=*p;q!=*p+4;++q)
         cout<<*q<< " ";
cout<<endl;
}
}



//编写程序读入一组 string 类型的数据,并将它们存储在 vector 中。接着,把该 vector 对象复制给一个字符指针数组。为 vector 中的每个元素创建一个新的字符数组,并把该 vector 元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组。 

int main()
{
vector<string> svec;
string str;

while(cin>>str) 
svec.push_back(str);

char **p=new char*[svec.size()];
size_t ix=0;
for(vector<string>::iterator ster=svec.begin();ster!=svec.end();++ster,ix++){
     char *ptmp=new char[(*ster).size()+1];
     strcpy(ptmp,(*ster).c_str());
     p[ix] = ptmp;
}
cout<<*(*p+1)<<" "<<*p<<" "<<*(p+1)<<" "<<(p[1]+1)<<*p+1;//观察

cout<<endl<<p;
for(ix=0;ix<svec.size();++ix)
delete [] p[ix];

delete [] p;

    return 0;
}










[此贴子已经被作者于2017-12-14 04:59编辑过]

搜索更多相关主题的帖子: 字符 指针 数组 vector int 
2017-12-14 04:56
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:0 
什么情况下必须使用指针或者数组?

vector用迭代器   数组用指针  ,这是应用于容器
指针的其他功能用什么替代 (比如指向普通对象)。 引用吗?


hl928452957@gmail点com

2017-12-14 05:32
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:0 
while(){
  int a=0;


循环体内的a 是不是 每次循环一次都会释放。
就是第一次初始化,然后到第一次循环结束就释放了。
然后第二次再初始化 再释放。

我所设想的,
while ( 条件作用域      语句作用域      #loop)

hl928452957@gmail点com

2017-12-14 05:44
快速回复:字符&指针&多维数组 结合 感觉转不过来了。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041012 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved