/* 涉及知识点:
1:光标位置的定位与检测
2:结构体的使用
3: 设计构建思想
*/
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <time.h>
/*首次适应算法
实现方法:
1.使用大小sizeof()不一的变量插入结构体,每个大小不一,
2.遍历结构体,将符合大小的变量放入,以此循环
*/
typedef struct{
char a[8];
char b[15];
char c[30];
char d[25];
char e[40];
}str;
//获取一个给定范围的随机数
int sj(int n){
srand(time(NULL));
return rand()%n+1;
}
//控制台光标位置
int getPos(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coordScreen = {0, 0}; //光标位置
CONSOLE_SCREEN_BUFFER_INFO csbi;
if (GetConsoleScreenBufferInfo(hConsole, &csbi))
{
//printf("光标坐标:(%d,%d)\n", csbi.dwCursorPosition.X, csbi.dwCursorPosition.Y);
return csbi.dwCursorPosition.Y;
}
return 0;
}
//设置光标位置
static void SetPos(int x, int y)
{
COORD point = {x,y};
HANDLE HOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(HOutput, point);
}
void InfoShow(str *x){
int n=1;
int y;
//int i,j;
printf("-------------------------内存状态显示-----------------------\n");
printf("内存序列\t内存中运行的内存\t\t内存大小\n");
y=getPos();
//第一序列
SetPos(0,y);
printf("%d",n++);
SetPos(16,y);
printf("%s",x->a);
SetPos(50,y);
y++;
printf("%d",sizeof(x->a));
//第二序列
SetPos(0,y);
printf("%d",n++);
SetPos(16,y);
printf("%s",x->b);
SetPos(50,y);
y++;
printf("%d",sizeof(x->b));
//第三序列
SetPos(0,y);
printf("%d",n++);
SetPos(16,y);
printf("%s",x->c);
SetPos(50,y);
y++;
printf("%d",sizeof(x->c));
//第四序列
SetPos(0,y);
printf("%d",n++);
SetPos(16,y);
printf("%s",x->d);
SetPos(50,y);
y++;
printf("%d",sizeof(x->d));
//第五序列
SetPos(0,y);
printf("%d",n++);
SetP