C++指针赋值

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:08:00
给指针赋一个字符串:
char *name;
cout<<"Name:";cin>>name;cout<<endl;
怎么老是出错?
要是初始化为
char *name=0;
cout<<"Name:";cin>>name;cout<<endl;
或者:
char *name=NULL;
cout<<"Name:";cin>>name;cout<<endl;
两个也是错的。
但改成数组形式就对了,即:
char name[10];
cout<<"Name:";cin>>name;cout<<endl;
但是名字的长度是不可预知的,想用动态来实现。请大哥给点启示!
哦!是兄弟姐妹们!
一楼:说得是,但是要怎么个结构体操作法?
二楼:但是这样一改,不是又等于限定了name的长度了吗?
三楼:要怎么改?具体点吧!只改一个地方的话,结果还是错的。
不好意思,有一个朋友给我答案了。这样的:
#include<iostream>
#include<string>
using namespace std;
void main()
{string a;cin>>a;cout<<a<<endl;}
至此,问题得到解决,给给了我不少启示,虽然没能在这里找到答案,依然感谢大家了!

char *name; //这只是个指针 ,没有指向内存空间,你怎么输入呢?
面name[10]; //name 是指向10个char 大小的空间存放字符,
你改成这样也对
char name[10];
char *ptr=name;
cint>>ptr;

第一个没赋初值所以是错的 ,第2第3把这指针搞成空指针了,
最后用结构体来实现是可以的

cin>>*name;
这样就行了。

没有开僻空间,你输入的数据存哪?