程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 如何實現給一個結構體隊列分配內存空間

如何實現給一個結構體隊列分配內存空間

編輯:C++入門知識

如何實現給一個結構體隊列分配內存空間 1、主要功能 對於一個結構體隊列在使用前要進行初始化,即給該隊列分配內存空間。   主要進行兩方面的操作: (1)該隊列中應該有幾個對象; (2)每個對象占有的內存空間是多大;   2、程序代碼如下所示: [cpp]   // 結構體占內存空間的判斷.cpp : 定義控制台應用程序的入口點。   //      #include "stdafx.h"   #include <string>   #include "iostream"   #include <queue>   #include <Windows.h>//使用隊列時應該引用的頭文件   using namespace std;            int _tmain(int argc, _TCHAR* argv[])   {       //聲明一個標明學生信息的結構體       typedef struct STUDENT_INFO       {           char num;//編號           int age;           float salary;              STUDENT_INFO *stuInfoNext;       }*LP_STUDENT_INFO;//注意給結構體定義一個指針的名稱;             LP_STUDENT_INFO stu1;       stu1=(LP_STUDENT_INFO)malloc(sizeof(STUDENT_INFO));//一定要對指針結構體初始化;       stu1->num='1';       stu1->age=15;       stu1->salary=1000.0;       stu1->stuInfoNext=NULL;          queue <LP_STUDENT_INFO> qStudentInfo; //利用指針來命名隊列       qStudentInfo.push(stu1);       cout<<qStudentInfo.size()<<endl;       cout<<stu1<<endl;//此時只能輸出stul的首地址;          typedef struct TRANSMIT_DATA_BUFFER       {           LPBYTE transmitDataBuffer;           //此處留作定義其他的變量成員用於控制IP的傳送速率       }*LP_TRANSMIT_DATA_BUFFER;          queue <LP_TRANSMIT_DATA_BUFFER> transmitBuffer;       LP_TRANSMIT_DATA_BUFFER temporaryTransmitBuffer;//為定義的隊列分配內存空間       for (int i=0;i<8;i++)  www.2cto.com     {           temporaryTransmitBuffer=(LP_TRANSMIT_DATA_BUFFER)malloc(sizeof(TRANSMIT_DATA_BUFFER));           temporaryTransmitBuffer->transmitDataBuffer=(LPBYTE)malloc(1024*188);           transmitBuffer.push(temporaryTransmitBuffer);          }       cout<<"transmitBuffer.size="<<transmitBuffer.size()<<endl;             return 0;   }       3、程序運行結果如下圖所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved