C primer plus:在結構中使用指標,使用malloc分配指標空間以及free

來源:互聯網
上載者:User

//C primer plus
//結構中使用指標
//給結構中指標分配記憶體空間
//free釋放掉之前分配的記憶體空間 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "tsong.h"

struct namect{
char * fname;
char * lname;
int letters;
};

void getinfo(struct namect *); //輸入姓名 
void makeinfo(struct namect *); //計算長度 
void showinfo(const struct namect *); //列印結構中的資訊 
void cleanup(struct namect *); //釋放記憶體 

int main(){
struct namect person;
getinfo(&person) ;
makeinfo(&person);
showinfo(&person);
cleanup(&person);

return 0;

}
void getinfo(struct namect *pst)
{
char temp[81];
puts("please enter your first name");
gets(temp);
pst->fname=(char *)malloc(strlen(temp)+1);
strcpy(pst->fname,temp);
puts("please enter your last name");
gets(temp);
pst->lname=(char *)malloc(strlen(temp)+1);
strcpy(pst->lname,temp);
}

void makeinfo(struct namect *pst)
{
pst->letters=strlen(pst->fname)+strlen(pst->lname);
}

void showinfo(const struct namect *pst)
{
printf("%s   %s  ,your name contains %d letters\n",pst->fname,pst->lname,pst->letters);
}

void cleanup(struct namect *pst)
{
free(pst->fname);
free(pst->lname);
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.