wuxianbiao 发表于 2021-7-14 22:56:35

结构体指针和typedef

#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结构体类型指针。

wuxianbiao 发表于 2021-7-14 23:09:34

s p = (stu *)malloc(sizeof(stu));
为什么改成上面这样程序就不会报错

万千只cnm 发表于 2021-7-15 10:17:09

你只是定义了一个指针啊
malloc申请空间才能储存东西

Gacy 发表于 2021-7-15 14:38:30

wuxianbiao 发表于 2021-7-14 23:09
s p = (stu *)malloc(sizeof(stu));
为什么改成上面这样程序就不会报错

这不是要申请一个空间存储吗

wuxianbiao 发表于 2021-7-15 23:30:00

万千只cnm 发表于 2021-7-15 10:17
你只是定义了一个指针啊
malloc申请空间才能储存东西

请问问题2是为什么?

wuxianbiao 发表于 2021-7-15 23:30:47

Gacy 发表于 2021-7-15 14:38
这不是要申请一个空间存储吗

能解释一下问题2吗?

Gacy 发表于 2021-7-16 12:03:50

wuxianbiao 发表于 2021-7-15 23:30
能解释一下问题2吗?

你等待大佬吧{:10_254:}我数据结构学不太明白{:10_266:}不好意思

万千只cnm 发表于 2021-7-16 14:30:02

wuxianbiao 发表于 2021-7-15 23:30
能解释一下问题2吗?

s *p = NULL
你这样就相当于 指向结构体指针的指针。 struct **
s p 才是 struct *
页: [1]
查看完整版本: 结构体指针和typedef