频道栏目
首页 > 资讯 > C++ > 正文

如何实现给一个结构体队列分配内存空间

13-01-22        来源:[db:作者]  
收藏   我要投稿
如何实现给一个结构体队列分配内存空间
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、程序运行结果如下图所示:
相关TAG标签
上一篇:IBM B24交换机光信号强度查看
下一篇:Win8下IE10浏览器如何实现漫游收藏夹
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站