为什么p=(slink *)malloc(sizeof(slink)); p.c='a';时报错

mopishv0 2008-02-01 10:50:02
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
char c;
struct node *next;
}slink;
int main()
{
slink *p;
p=(slink *)malloc(sizeof(slink));
p.c='a';
system("pause");
}

为什么这样会报错呢?
request for member `c' in `p', which is of non-class type `slink*'
...全文
189 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
icoding 2008-02-02
  • 打赏
  • 举报
回复
p-> c or (*p).c

对头,仔细看看指针的定义
stoneyrh 2008-02-02
  • 打赏
  • 举报
回复
p->c or (*p).c
zzyjsjcom 2008-02-02
  • 打赏
  • 举报
回复
p->c 是 (*p).c的简化写法
paula2008 2008-02-02
  • 打赏
  • 举报
回复
study
shaoze5 2008-02-02
  • 打赏
  • 举报
回复
结构体的定义如果是指针,就要用"->";如果是非指针,就要用".";
pptor 2008-02-02
  • 打赏
  • 举报
回复
p是指针 指针访问要用->
p.c改成p-> c
Treazy 2008-02-02
  • 打赏
  • 举报
回复
p是指针,指针访问要用->
union/struct/class访问用.
michney 2008-02-02
  • 打赏
  • 举报
回复
ls说的全对
mopishv0 2008-02-01
  • 打赏
  • 举报
回复
哦了 明白了 谢谢各位
melody1128 2008-02-01
  • 打赏
  • 举报
回复
这里,p 已经使指针了,“p.c”。。。有这种用法吗?。。好象没见过啊。。
lockhall 2008-02-01
  • 打赏
  • 举报
回复
指针变量用 ->

结构变量用 .

比如:
typedef struct node
{
char c;
struct node *next;
}slink;

slink temp;

temp.c = 'a';

slink *ptmp;

ptmp->c = 'a';
mopishv0 2008-02-01
  • 打赏
  • 举报
回复
请达人来详解吧……对这两个的区别不是很明白…………也谢谢LS的各位
fengaukings 2008-02-01
  • 打赏
  • 举报
回复
c里的用法(*p).c或p->c
ssdx 2008-02-01
  • 打赏
  • 举报
回复
运算符 一个用于指针 一个用于对象
ssdx 2008-02-01
  • 打赏
  • 举报
回复
p->c
mopishv0 2008-02-01
  • 打赏
  • 举报
回复
为什么p.c改成p->c就行了呢?

69,336

社区成员

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

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