一个c语言指针输出字符串的问题?

#include<stdio.h>
int main()
{
char *ch="asfsdfasd",**t;
*t=ch;
printf("%s",*t);
return 0;
}
写的代码是这样,必须用二级指针做,我预期是能打印出ch字符串,能编译但是运行没结果。ch存放字符串的地址,然后赋值给*t,最后输出。想知道为什么这么写不行。谢谢大家!

不是*t=ch;而是t=&ch; t还是个野指针,直接操作*t是非常不安全的
#include<stdio.h>
int main()
{
char *ch="asfsdfasd",**t;
t=&ch; //不是*t=ch;而是t=&ch;
printf("%s",*t);
return 0;
}
如果一定要*t=ch,就要先给t分配空间:
#include<stdio.h>
#include <malloc.h>
int main()
{
char *ch = "asfsdfasd", **t;
t = (char**)malloc(sizeof(char*)); //给t分配一个char*的空间
*t = ch;
printf("%s", *t);
free(t);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-28
类型不匹配,定义的是char指针,赋值是char实体
第2个回答  2020-12-28

C语言字符串的学习,输入指定字符串,并且计算字符串的位数

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网