结构体二级指针问题

Sniper167 2006-08-11 10:45:59
struct node
{
char *name;
}

struct node *B;
struct node **A;

打印时用B则是:
printf("%s", B->name);

用A的时候怎么表示呢?
printf("%s", (*A)->name); //我用的这个, 能通过编译和链接,但系统无法启动
还是
printf("%s", (*A->name));
还是
printf("%s", A->name);
呢?

...全文
213 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sniper167 2006-08-11
  • 打赏
  • 举报
回复
多谢楼上各位
偶系统中的指针都是初始化了的
tailzhou 2006-08-11
  • 打赏
  • 举报
回复
例子里的
(*ppA)->name = "ddddddd";
改成
A.name = "ddddddd";
更有说服力。
prophetluo 2006-08-11
  • 打赏
  • 举报
回复
顶楼上
freshairfly 2006-08-11
  • 打赏
  • 举报
回复
给你个例子:
#include <stdlib.h>

struct node
{
char *name;
};
int main()
{
struct node A;
struct node* pA;
struct node** ppA;
pA = &A;
ppA = &pA;
(*ppA)->name = "ddddddd";
printf("%s\n", (*ppA)->name);
return 0;
}
tailzhou 2006-08-11
  • 打赏
  • 举报
回复
printf("%s", (*A)->name);
freshairfly 2006-08-11
  • 打赏
  • 举报
回复
printf("%s", (*A)->name); 是这个,系统无法启动可能是因为你的使用了空指针(或者是没有初始化的指针)
bombwang 2006-08-11
  • 打赏
  • 举报
回复
printf("%s", (*A)->name);
freshairfly 2006-08-11
  • 打赏
  • 举报
回复
把你代码贴出来

用法肯定是(*A)->name这种用法,系统启动不了,肯定是另有原因,如果原因就出在(*A)->name这句上呢,那一定是指针没有赋值!

69,369

社区成员

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

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