⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memtest.c

📁 BIOS emulator and interface to Realmode X86 Emulator Library Can emulate a PCI Graphic Controller V
💻 C
字号:
/******************************************************************************					SciTech OS Portability Manager Library**  ========================================================================**    The contents of this file are subject to the SciTech MGL Public*    License Version 1.0 (the "License"); you may not use this file*    except in compliance with the License. You may obtain a copy of*    the License at http://www.scitechsoft.com/mgl-license.txt**    Software distributed under the License is distributed on an*    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or*    implied. See the License for the specific language governing*    rights and limitations under the License.**    The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.**    The Initial Developer of the Original Code is SciTech Software, Inc.*    All Rights Reserved.**  ========================================================================*** Language:		ANSI C* Environment:	any** Description:	Test program to determine just how much memory can be*				allocated with the compiler in use. Compile and link*				with the appropriate command line for your DOS extender.**				Functions tested:	malloc()*									PM_availableMemory()******************************************************************************/#include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include "pmapi.h"#ifdef	__16BIT__#define	MAXALLOC	64#else#define	MAXALLOC	2000#endifint main(void){	int		i;	ulong	allocs;	ulong	physical,total;	char	*p,*pa[MAXALLOC];    printf("Program running in ");	switch (PM_getModeType()) {		case PM_realMode:			printf("real mode.\n\n");			break;		case PM_286:			printf("16 bit protected mode.\n\n");			break;		case PM_386:			printf("32 bit protected mode.\n\n");			break;		}	printf("Memory available at start:\n");	PM_availableMemory(&physical,&total);	printf("   Physical memory:           %ld Kb\n", physical / 1024);	printf("   Total (including virtual): %ld Kb\n", total / 1024);	printf("\n");	for (allocs = i = 0; i < MAXALLOC; i++) {		if ((pa[i] = malloc(10*1024)) != 0) {	/* in 10k blocks 	*/			p = pa[allocs];			memset(p, 0, 10*1024); /* touch every byte 				*/			*p = 'x';           /* do something, anything with		*/			p[1023] = 'y';      /* the allocated memory      		*/			allocs++;			printf("Allocated %lu bytes\r", 10*(allocs << 10));			}		else break;		if (PM_kbhit() && (PM_getch() == 0x1B))			break;		}	printf("\n\nAllocated total of %lu bytes\n", 10 * (allocs << 10));	printf("\nMemory available at end:\n");	PM_availableMemory(&physical,&total);	printf("   Physical memory:           %ld Kb\n", physical / 1024);	printf("   Total (including virtual): %ld Kb\n", total / 1024);	for (i = allocs-1; i >= 0; i--)		free(pa[i]);    printf("\nMemory available after freeing all blocks (note that under protected mode\n");    printf("this will most likely not be correct after freeing blocks):\n\n");	PM_availableMemory(&physical,&total);	printf("   Physical memory:           %ld Kb\n", physical / 1024);	printf("   Total (including virtual): %ld Kb\n", total / 1024);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -