指针的初始化

Killer19840227 2003-02-27 04:29:23
怎么给一个字符串指针初始化呀?如下
char *p;
gets(p);
但p没有初始化呀,要怎么做呢?
其他数据类型的也请说一下.
...全文
1193 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Killer19840227 2003-03-09
  • 打赏
  • 举报
回复
没更好的方法了吗?那就算了吧.
wenj 2003-03-01
  • 打赏
  • 举报
回复
补充一下:
@1:-----------------
char *get()
{
char *p=NULL;
p =new char[n];
return p;
}

char *p=NULL;
p=get();

@2---------------
void get(char **p)
{
char *ip=NULL;
ip=new[n];
if(p)
*p=ip;
}
char *p=NULL;
get(&p);
wenj 2003-03-01
  • 打赏
  • 举报
回复
如果,你是要在gets()里面给指针分配空间;char *p=NULL;不就可以了吗?:)
Killer19840227 2003-03-01
  • 打赏
  • 举报
回复
楼上的方法都是要开辟新内存段,并且长度不可改,怎么可以用gets()里的字符串长度来定义呢?
programmer200x 2003-03-01
  • 打赏
  • 举报
回复
团长有什么高见阿?
Jinhao 2003-03-01
  • 打赏
  • 举报
回复
呵呵~~楼上的兄弟真会搞笑
qweqwe 2003-03-01
  • 打赏
  • 举报
回复
很简单的一个问题啊!
char* p = 0;
gets(p);
这不就初始化了吗?
flowerinwater 2003-03-01
  • 打赏
  • 举报
回复
原则上讲在c++中应该避免这样写,因为右边的是常量

char* p = "fdas";
flysundy 2003-02-28
  • 打赏
  • 举报
回复
char *p = "hello";
或则:
char* p = new char[n];
memset(p,0,n);
JoshuaLi 2003-02-28
  • 打赏
  • 举报
回复
同意高楼
char *p = "hello";是常量不能用strcpy()等进行修改
wsmall 2003-02-27
  • 打赏
  • 举报
回复
char *p = new char[10];

p指向一个10个字节的指针。
xboy 2003-02-27
  • 打赏
  • 举报
回复
char *p;
gets(p);//这里已经开辟了一个空间
而指针p就指向了它

如果你要开辟一个n长的空间
如:*p=new char[n]
sn820 2003-02-27
  • 打赏
  • 举报
回复
以一个地址值赋值
积木 2003-02-27
  • 打赏
  • 举报
回复
c语言下
char *p = (char*)malloc(sizeof(char[10]))
strcpy(p,"hehhe");
c++ 下因为有很多的重载函数,你可以方便的赋值
char* p =string;可以
char* p = "fdas";可以
……
太多了
Linux2001 2003-02-27
  • 打赏
  • 举报
回复
同楼上的
whhif 2003-02-27
  • 打赏
  • 举报
回复
char * p=new char[20];

char string[20];
char * p=string;
都可以初使化.
其它的也都一样.
brucegong 2003-02-27
  • 打赏
  • 举报
回复




p = new char;

应该是这样的吧。我很少用new,所以不知道语法格式是否正确:)






69,396

社区成员

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

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