字符指针作为函数参数问题

hj821165254 2009-11-25 05:33:48

#include<stdio.h>
#include<string.h>
char* InputString() //字符串输入函数
{
char tem[100];
char* p;
p=tem;
scanf("%s",tem);
return p;
}
void OutputString(char* p) //字符串输出函数
//乱码
{
printf("%s",p);
}
int main()
{
char* Str1;
char* Str2;
Str1=InputString();
Str2=InputString();
OutputString(Str1);
OutputString(Str2);
printf("%s",Str1); //这样输出最后还是有乱码
return 0;
}
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hj821165254 2009-12-02
  • 打赏
  • 举报
回复
学习了 学习了
zhangshuai09 2009-12-02
  • 打赏
  • 举报
回复
我觉得还有另外一种方法也可以
static char a[100];
只是要清除里面的元素,在c++里面不是要尽量避免用malloc()/realloc()吗
zdyguilong 2009-11-27
  • 打赏
  • 举报
回复
学习了
starix_cai 2009-11-27
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <string.h>
#include <malloc.h>

char* str_input()
{
char* str = (char*)malloc(sizeof(char) * 100);
scanf("%s", str);
return str;
}

void str_output(char* str)
{
printf("%s\n", str);
}


int main()
{
char* mystr = str_input();
str_output(mystr);
free(mystr);
mystr = NULL;
}
hj821165254 2009-11-25
  • 打赏
  • 举报
回复
如果想写个字符串输入函数该怎么处理呢?
lm3478 2009-11-25
  • 打赏
  • 举报
回复
Str1=InputString()之后 Str1就成了野指针了~~~char tem[100]的内存已经释放了~~

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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