请问tc的问题 怪了

airflight1981 2005-06-12 03:45:45
请问
我遇到了个很奇怪的问题
char *name 像这种字符指针在tc下为什么在tc环境里 编译 运行 就能显示我输入的字
可是 在windows目录下的exe文件中运行,所有我的字符指针都在printf后显示为(null)
举个例子:
struct stu
{char *name;
}p1;
printf("\nplease input name:");
scanf("%s",p1->name);
printf("\nname is %s",p1->name);
在tc环境下编译运行 显示出我输入的
可在windows下运行这个exe文件 却显示
name is (null)
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sten 2005-06-12
  • 打赏
  • 举报
回复
关注
ningzhiyu 2005-06-12
  • 打赏
  • 举报
回复
struct stu
{char *name;
}p1;
只是一个指针变量,还没有初始化就使用了,就是传说中的“野指针”。
应该先申请一块适当的内存,初始化pl->name再使用

例如
pl->name=(char *)malloc(10);
...
...
free(pl->name);
cw1982519 2005-06-12
  • 打赏
  • 举报
回复
struct stu
{char *name;
}p1;
p1 example;
printf("\nplease input name:");
scanf("%s",example.name);
printf("\nname is %s",example.name);

--------------------------------
http://bbs.softempolder.com
欢迎大家到线上软件学习和讨论。
llf_hust 2005-06-12
  • 打赏
  • 举报
回复
typedef struct stu
{char *name;
}p1;
printf("\nplease input name:");
p1->name = (char *) malloc (sizeof(char)*30); /* 要分配内存空间后才可以 */
scanf("%s",p1->name);
printf("\nname is %s",p1->name);
在tc环境下编译运行 显示出我输入的
可在windows下运行这个exe文件 却显示
name is (null)

69,371

社区成员

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

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