c++ 字符串问题

Anders_lt 2009-03-10 07:01:31
char * GetStr(char *p)
{
p = "hello world";
return p;
}

void main()
{
char *str = NULL;

if(NULL != GetStr(str))
{
printf("\r\n str = %s",str);
}
return;
}
答案:无法返回字符串,参数使用错误。


文章出处:http://www.diybl.com/course/3_program/c/c_js/20071119/86868_6.html
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
野男孩 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hairetz 的回复:]
char * GetStr(char *p)
{
p = "hello world";
return p;
}

void main()
{
//char *str = NULL; //首先char *str=...这种类型初始化的,指针是const,但是你这里例外,根本还没用内存对象,拿来用简直就是野,指针。
char *str=new char[20]; //改成这样就可以了。
if(NULL != GetStr(str))
{
printf("\r\n str = %s",str);
}
return;…
[/Quote]

说的不对。他这里的问题是GetStr(char* p)有问题,改成GetStr(char*& p)就行了。"hello world"是常量字符串,返回它没问题。
  • 打赏
  • 举报
回复
char * GetStr(char *p)
{
p = "hello world";
return p;
}

void main()
{
//char *str = NULL; //首先char *str=...这种类型初始化的,指针是const,但是你这里例外,根本还没用内存对象,拿来用简直就是野,指针。
char *str=new char[20]; //改成这样就可以了。
if(NULL != GetStr(str))
{
printf("\r\n str = %s",str);
}
return;
}
cxxer 2009-03-10
  • 打赏
  • 举报
回复

Dev-Cpp 4.9.9.2


#include <stdio.h>
#include <stdlib.h>

char * GetStr(char *p)
{
p = "hello world";
return p;
}

int main()
{
char *str = NULL;

if(NULL != (str = GetStr(str))) //str接收返回的串
{
printf("\r\n str = %s",str);
}
system("PAUSE");
return 0;
}



xkyx_cn 2009-03-10
  • 打赏
  • 举报
回复
区分传参与传址,这个程序有一定欺骗性,新手容易混淆

运行下面的程序:

#include <stdio.h>

char *GetStr(char **p)
{
*p = "hello world";
return *p;
}

void main()
{
char *str = NULL;
char *rstr = NULL;

if(NULL != (rstr = GetStr(&str)))
{
printf("\r\n str = %s", str);
printf("\r\n rstr = %s", rstr);
}
return;
}
yellowhwb 2009-03-10
  • 打赏
  • 举报
回复
char * GetStr(char *p)
{
p = "hello world";
return p;
}
这个函数中的p是指向栈内存的指针,出了函数,栈内存就销毁了,所以返回的p是野指针
yellowhwb 2009-03-10
  • 打赏
  • 举报
回复

void GetStr(char **ps)
{
char *p = malloc(50);
if (p)
strcpy(p, "hello world");
*ps = p;
}

void main()
{
char *str = NULL;
GetStr(&str);
if(str)
{
printf("\r\n str = %s",str);
}
return;
}
oyljerry 2009-03-10
  • 打赏
  • 举报
回复
str指针初始化

69,371

社区成员

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

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