一、动态内存分配
1.申请内存
```
int main(void){
int len;
printf("请输入你需要分配的数组的长度:len = ");
scanf("%d",&len);
```
int * pArr = (int *)malloc(sizeof(int) * len);(注:此处是向操作系统请求内存空间,由于我们需要的数组为int 类型的,所以sizeof(int)为int,如果我们输入的len为5,即向操作系统申请20个字节的空间,之后返回第一个内存的编号,我们需要强制类型转换,将返回来的空间标记为int类型的,这时系统就知道我们的输入类型了)
2.释放内存
free(pArr);
return 0;
}
二、跨函数使用内存
# include<stdio.h>
# include<stdilb.h>
struct Student{
int number;
int age;
};
struct Student * createStudent();
void ShowStudent(struct Student * ps);
int main(void){
struct Student *ps;
ps = createStudent();
ShowStudent(ps);
return 0;
}
struct Student* createStudent(){
struct Student* ps = (struct Student)malloc(sizeof(struct Student));
ps->number = 12;
ps->age = 23;
return ps;
}
void ShowStudent(struct Student *ps){
printf("%d %d\n",ps->number,ps->age);
}
网友评论