1.
#include <stdio.h>
typedef struct {
int data;
} a;
void fun(a *t) {
t->data = t->data + 1;
}
int main() {
a t;
t.data = 1;
fun(&t);
printf("%d", t.data);
}
2.
#include <stdio.h>
typedef struct {
int data;
} *a;
void fun(a t) {
t->data = t->data + 1;
}
int main() {
a t;
t->data = 1;
fun(t);
printf("%d", t->data);
}
3.
#include <stdio.h>
typedef struct {
int data;
} a;
void fun(a *t) {
t->data = t->data + 1;
}
int main() {
a *t;
t->data = 1;
fun(t);
printf("%d", t->data);
}
2和3是因为结构体指针 t 没有合法空间,使用malloc动态分配空间就可以了
2.
#include <stdio.h>
#include <stdlib.h>
typedef struct stu{
int data;
} *a;
void fun(a t)
{
t->data = t->data + 1;
}
int main() {
a t=malloc(sizeof(struct stu));//动态分配空间
t->data = 1;
fun(t);
printf("%d", t->data);
free(t);//释放空间
}
3.
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int data;
} a;
void fun(a *t) {
t->data = t->data + 1;
}
int main() {
a *t=malloc(sizeof(a));//动态分配空间
t->data = 1;
fun(t);
printf("%d", t->data);
free(t);//释放空间
}