显示内存状态示例分享_C 语言

复制代码 代码如下:

#include <stdio.h>
void memstat(void *memory, size_t memsize) {
 printf("-------memory------ ----\n");
 for(int i=0; i<memsize; i++) {
  char *p = (char*) memory;
  printf("%d%d%d%d "
    , 0x1 & p[i] >> 3
    , 0x1 & p[i] >> 2
    , 0x1 & p[i] >> 1
    , 0x1 & p[i]);

  if(i % 4 == 3) {
   #define FILTER(c) ((c)<' '? '.': (c))
   printf("%c%c%c%c"
     , FILTER(p[i-3])
     , FILTER(p[i-2])
     , FILTER(p[i-1])
     , FILTER(p[i]));
   puts("");
  }
 }
 printf("------------------- ----\n");
}
int main(int argc, char **argv) {
 int memory[8];

 memset(memory, -1, sizeof(memory));

 memory[0] = 3;
 memory[2] = 0xAAAAAAAA;
 memory[3] = 0;

 strcpy((char *)&memory[4], "= =  .  ");

 memstat(memory, sizeof(memory));
}

时间: 2024-09-20 10:41:35

显示内存状态示例分享_C 语言的相关文章

用C语言获取文件的大小示例分享_C 语言

查了一下发现同C语言的文件操作函数便可以很容易的实现这样的功能.在自己实现的函数中使用到的函数就只有fseek和ftell.它们的说明如下: fseek 语法: #include <stdio.h> int fseek( FILE *stream, long offset, int origin ); 函数fseek()为给出的流设置位置数据. origin的值应该是下列值其中之一(在stdio.h中定义): 名称 说明 SEEK_SET 从文件的开始处开始搜索 SEEK_CUR 从当前位置开

纯c语言实现面向对象分析与示例分享_C 语言

C语言的对象化模型面向对象的特征主要包括:.封装,隐藏内部实现.继承,复用现有代码.多态,改写对象行为1.1  封装封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性.封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的.封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来

c语言内存泄露示例解析_C 语言

正确的内存管理的重要性存在内存错误的 C 和 C++ 程序会导致各种问题.如果它们泄漏内存,则运行速度会逐渐变慢,并最终停止运行:如果覆盖内存,则会变得非常脆弱,很容易受到恶意用户的攻击.从 1988 年著名的莫里斯蠕虫 攻击到有关 Flash Player 和其他关键的零售级程序的最新安全警报都与缓冲区溢出有关:"大多数计算机安全漏洞都是缓冲区溢出",Rodney Bates 在 2004 年写道. 在可以使用 C 或 C++ 的地方,也广泛支持使用其他许多通用语言(如 Java.R

c语言尾队列tailq使用示例分享_C 语言

queue和list的结构定义和操作都在'sys/queue.h'中完成, 主要定义了下面四种数据结构: 1单向列表(single-linked lists)2单向尾队列(single-linked tail queue)3列表(lists)4尾队列(tail queues) 使用示例 复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <sys/queue.h> /*  定义一个结构体,它只是尾队列的一个元

c++函数指针使用示例分享_C 语言

需求假设要设计一个名为estimate()的函数,估算编写指定行数的代码所需的时间,并且希望不同的程序员都可以使用该函数. 对于所有的用户来说,estimate()中一部分代码都是相同的,但该函数允许每个程序员提供自己的算法来估算时间. 为实现目标,采用的机制是,将程序员要使用的算法函数的地址传递给estimate(). 实现代码如下 复制代码 代码如下: // funpointer.cpp : 定义控制台应用程序的入口点.//#include "stdafx.h"#include &

实现posix消息队列示例分享_C 语言

mqueue.h 复制代码 代码如下: ////  mqueue.h//  UNIX_C////  Created by 周凯 on 14-2-9.//  Copyright (c) 2014年 zk. All rights reserved.// #ifndef __PS_MQUEUE_H#define __PS_MQUEUE_H #include <unistd.h>#include <sys/types.h> typedef struct mq_info     *mqd_t

使用c语言生成随机数的示例分享_C 语言

这是一个自己用c写的不重复产生随机数的代码,且只有输入q才能退出程序. 复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <time.h>#define MAX  100 int main(void){ int i, j, flag, num, a[MAX] = { 0 }, max, ch; srand((unsigned)time(NULL));  printf("Please input m

c++隐式类型转换示例分享_C 语言

复制代码 代码如下: /*=============================================================================#     FileName: explicit_try.cc#         Desc: 验证含有一个参数的非explicit构造函数是否可以拷贝初始化=============================================================================*/#in

c语言实现单链表算法示例分享_C 语言

复制代码 代码如下: #include <stdio.h>#include <stdlib.h>typedef char DataType;typedef struct Node{    DataType data;    struct Node * Next;}ListNode,* LinkList;void Judement(LinkList head){ //判断分配内存    if (!head){        printf("Overflow.");