求达人指点 c语言指针问题

发布于 2021-11-18 16:56:35 字数 848 浏览 783 评论 12

上代码

char x(char *a,char *b)
{
     
    *a=15;
    *b=16;
    return 1;
}
 
char xx(char *a )
{
    
    *a=115;
    
    return 1;
}
 
int main(int argc, char *argv[])
{
      char bb,*cc;
      char b,*c,*d;
      
       bb=xx(cc);
       printf("cc %dn",*cc);
      
       b=x(c,d);
       printf("c %d d %dn",*c,*d);
 }  
输出执行答案:cc 115  后面一个print是乱码

求解


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

爱的那么颓废 2021-11-22 15:45:49

由于你未分配存储空间,在函数中的赋值操作使指针指向的是临时空间,当你在函数外执行解引用时,指针所指向空间的值是未定义的,自然乱码。

私藏温柔 2021-11-22 15:45:49

这只是内存分配出现的一个巧合而已,建议看下内存分配的相关知识。

永不分离 2021-11-22 15:45:49

这种程度的用不上malloc吧?

int main(int argc, char *argv[])
{
      char bb,cc;
      char b,c,d;
      
       bb=xx(&cc);
       printf("cc %dn",cc);
      
       b=x(&c,&d);
       printf("c %d d %dn",c,d);
 }
把回忆走一遍 2021-11-22 15:45:49

这种程度的用不上malloc吧?

int main(int argc, char *argv[])
{
      char bb,cc;
      char b,c,d;
      
       bb=xx(&cc);
       printf("cc %dn",cc);
      
       b=x(&c,&d);
       printf("c %d d %dn",c,d);
 }
陌上芳菲 2021-11-22 15:45:49

内存分配。

www.520ghost.com

夜无邪 2021-11-22 15:45:36

由于你未分配存储空间,在函数中的赋值操作使指针指向的是临时空间,当你在函数外执行解引用时,指针所指向空间的值是未定义的,自然乱码。

累赘 2021-11-22 15:45:18

char *c只是给c分配存储地址信息的空间而已

猫性小仙女 2021-11-22 15:41:33

全部指针没有分配内存,cc=(char*)malloc(1);b=(char*)malloc(1);c=(char*)malloc(1);

像你 2021-11-22 15:41:28

这个代码在linux gcc下根本运行不了。。。

情场扛把子 2021-11-22 15:33:53

求高人帮助 谢谢

沙与沫 2021-11-22 05:58:07

补充 后来我把该程序加到一个while里,放到powerpc平台上跑 输出cc 115 c 15 d 16 ,Trace/breakpoint trap 。然后进程自动退出了。

别低头,皇冠会掉 2021-11-21 20:17:33

全部指针没有分配内存,cc=(char*)malloc(1);b=(char*)malloc(1);c=(char*)malloc(1);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文