C语言——指针与结构体 内存的动态分配
2011-08-13 12:57
1016 查看
例一 :
例二 :
#include <stdio.h> #include <string.h> struct Student { int sid ; char name[200] ; int age ; }; void f(struct Student *p); void g(struct Student *p); void h(struct Student stu); int main() { struct Student stu ; f(&stu); g(&stu); h(stu); //printf("%d %s %d \n" ,stu.sid , stu.name , stu.age); return 0 ; } void g(struct Student *p) //用指针可以减小内存占用 , 节省时间提高效率 { printf("%d %s %d \n", p -> sid , p -> name , p -> age); } void h(struct Student stu) //值传递 { printf("%d %s %d \n", stu.sid , stu.name ,stu.age); } void f(struct Student *p) //输入函数 { (*p).sid = 23 ; //等价 p -> sid = 23 ; strcpy( p -> name , "zhangsan"); p -> age = 34 ; }
例二 :
////////////////////////////////// // ——注释部分为第二种方法——/// ////////////////////////////////// #include <stdio.h> #include <malloc.h> struct Student { int sid ; int age ; }; //struct Student *CreateStudent(struct Student **q); struct Student *CreateStudent(void); void ShowStudent(struct Student *); int main() { struct Student *p ; //p = CreateStudent(&p); p = CreateStudent(); ShowStudent(p); return 0 ; } //struct Student *CreateStudent(struct Student **q) struct Student *CreateStudent(void) { /* *q = (struct Student *)malloc(sizeof(struct Student)); (*q) -> sid = 78 ; // " -> "优先级大于" * " (*q) -> age = 23 ; return *q; */ struct Student *p = (struct Student *)malloc(sizeof(struct Student)); p -> sid = 78 ; p -> age = 23 ; return p ; } void ShowStudent(struct Student *ps) { printf("%d %d \n" , ps -> sid , ps -> age); }
相关文章推荐
- C语言——指针与结构体 内存的动态分配
- C语言学习9: malloc动态内存存储,动态内存分配去空格字符增长版,动态内存分配去符号incr增长版,型参和返回值都是int型的函数的指针,main函数的地址也可以用指针指向,typedef定义函数指针,函数定义与嵌套的作用,返回函数指针类型,const作用
- C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
- C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
- c语言中的动态内存分配
- C/C++动态内存分配之用malloc和指针实现动态数组排序
- C语言 二维数组(指针)动态分配和释放
- c语言中的动态内存分配
- 动态内存分配涉及到的二级指针,传递相关
- C语言中结构体内存分配机制
- C语言:动态内存会被自动释放吗?杜绝“野指针”
- 结构体中指针成员的动态分配
- c语言:动态内存分配
- 指针与内存的动态分配(dynamic allocation)
- C语言,内存对齐,内存分配,地址操作,结构体(二)
- C语言编程基础-16动态内存分配 二级指针做形参 函数指针
- C和指针之动态内存分配(读取范围在1和标准输入读取的size之前每个数据出现的次数)
- 链表的C语言实现(含动态内存分配)
- C语言中的动态内存分配详解
- C和指针之动态内存分配常见问题和总结