如何实现给一个结构体队列分配内存空间
如何实现给一个结构体队列分配内存空间
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.zzzyk.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、程序运行结果如下图所示:
补充:软件开发 , C++ ,