前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C与C++动态分配空间

C与C++动态分配空间

作者头像
布衣者
发布2021-09-07 11:05:27
5330
发布2021-09-07 11:05:27
举报
文章被收录于专栏:布衣者博客

C语言采用malloc.h函数库进行动态分配 C++有简单的方式 只需要用new函数就行。

例如:输入同学个数n,并分别输入姓名、学号、性别(m,f),用动态分配写出,并输出。 C版:(利用(struct student*)malloc(Len)进行动态分配)

代码语言:javascript
复制
#include<stdio.h>
#include<malloc.h>
#define Len  sizeof(struct student)
struct student
{
    char name[10];
    float num;
    char sex;
    struct student *link;
};
int main()
{
    struct student *p1,*p2,*head;
    int x,i;
    scanf("%d",&x);
    for(i=0;i<=x;i++)
    {
        if(i==0)
        {
            head=(struct student*)malloc(Len);
            p1=head;
        }else 
        {    
            p2=(struct student*)malloc(Len);;
            p1->link=p2;
            p1=p2;
        }
        if(i!=x)
        scanf("%s %f %c",&p1->name,&p1->num,&p1->sex);
        else {
            p1->link=NULL;
            p1=head;
        }
    }
    while(p1->link!=NULL)
    {
        printf("%s %5.0f %c\n",p1->name,p1->num,p1->sex);
        p1=p1->link;
    }
}

C++版:(利用new进行动态分配)

代码语言:javascript
复制
#include<iostream>
using namespace std;
int main()
{
    struct student
    {
        char name[10];
        float num;
        char sex;
        struct student *link;
    };
    student *p1,*p2,*head;
    int x,i;
    scanf("%d",&x);
    for(i=0;i<=x;i++)
    {
        if(i==0)
        {
            head=new student;
            p1=head;
        }else 
        {    
            p2=new student;
            p1->link=p2;
            p1=p2;
        }
        if(i!=x)
        scanf("%s %f %c",&p1->name,&p1->num,&p1->sex);
        else {
            p1->link=NULL;
            p1=head;
        }
    }
    while(p1->link!=NULL)
    {
        printf("%s %5.0f %c\n",p1->name,p1->num,p1->sex);
        p1=p1->link;
    }
}

C撤除使用空间采用free(空间的指针) C++撤除使用空间采用delete(空间的指针) (这里只针对本次案例,其他的写法请参考相关书籍)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年07月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档