结构体指针和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结构体类型指针。 s p = (stu *)malloc(sizeof(stu));
为什么改成上面这样程序就不会报错 你只是定义了一个指针啊
malloc申请空间才能储存东西 wuxianbiao 发表于 2021-7-14 23:09
s p = (stu *)malloc(sizeof(stu));
为什么改成上面这样程序就不会报错
这不是要申请一个空间存储吗 万千只cnm 发表于 2021-7-15 10:17
你只是定义了一个指针啊
malloc申请空间才能储存东西
请问问题2是为什么? Gacy 发表于 2021-7-15 14:38
这不是要申请一个空间存储吗
能解释一下问题2吗? wuxianbiao 发表于 2021-7-15 23:30
能解释一下问题2吗?
你等待大佬吧{:10_254:}我数据结构学不太明白{:10_266:}不好意思 wuxianbiao 发表于 2021-7-15 23:30
能解释一下问题2吗?
s *p = NULL
你这样就相当于 指向结构体指针的指针。 struct **
s p 才是 struct *
页:
[1]