鱼C论坛

 找回密码
 立即注册
查看: 2706|回复: 7

结构体指针和typedef

[复制链接]
发表于 2021-7-14 22:56:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
typedef struct Stu
{
        int age;
}stu,*s;
// stu 表示 struct Stu     s表示结构体指针的名称   即 struct Stu *
void main(void)
{
        s p = NULL;
        p->age = 10;
}


问题1:上面的程序在vs中报错,提示出现木马文件。
问题2 :*s不是表示Stu结构体指针吗?s p = NULL; 应该改写成s *p = NULL。好比定义int类型的指针 int *p,  s *p表示定义stu结构体类型指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-14 23:09:34 | 显示全部楼层
s p = (stu *)malloc(sizeof(stu));  
为什么改成上面这样程序就不会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-15 10:17:09 | 显示全部楼层
你只是定义了一个指针啊
malloc申请空间才能储存东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-15 14:38:30 | 显示全部楼层
wuxianbiao 发表于 2021-7-14 23:09
s p = (stu *)malloc(sizeof(stu));  
为什么改成上面这样程序就不会报错

这不是要申请一个空间存储吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-15 23:30:00 | 显示全部楼层
万千只cnm 发表于 2021-7-15 10:17
你只是定义了一个指针啊
malloc申请空间才能储存东西

请问问题2是为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-15 23:30:47 | 显示全部楼层
Gacy 发表于 2021-7-15 14:38
这不是要申请一个空间存储吗

能解释一下问题2吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-16 12:03:50 | 显示全部楼层
wuxianbiao 发表于 2021-7-15 23:30
能解释一下问题2吗?

你等待大佬吧我数据结构学不太明白不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-16 14:30:02 | 显示全部楼层
wuxianbiao 发表于 2021-7-15 23:30
能解释一下问题2吗?
s *p = NULL
你这样就相当于 指向结构体指针的指针。 struct **
s p 才是 struct *
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 06:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表