11 2012 档案
【转】windows多线程编程CreateThread,_beginthead(_beginthreadex)和AfxBeginThread的区别
摘要:在Windows的多线程编程中,创建线程的函数主要有CreateThread,_beginthead(_beginthreadex)和AfxBeginThread,那么它们之间有什么联系与区别呢?当我需要创建一个线程时该用哪个函数呢?下面先介绍各个函数的用法:CreateThread:函数原型:HANDLE WINAPI CreateThread(_in LPSECURITY_ATTRIBUTESlpThreadAttributes,_in SIZE_TdwStackSize,_in LPTHREAD_START_ROUTINElpStartAddress,_in LPVOIDlpParame 阅读全文
posted @ 2012-11-22 22:16 particle 阅读(3031) 评论(0) 推荐(0)
【转】malloc和new的区别
摘要:malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。内存泄漏对于malloc或者n 阅读全文
posted @ 2012-11-18 09:17 particle 阅读(225) 评论(0) 推荐(0)
蒙提霍尔问题
摘要:1、《算法导论》第二版的附录C.2概率有这么一道习题:一个监狱看守从三个罪犯中随机选择一个予以释放,其他两个将被处死。警卫知道哪个人是否会被释放,但是不允许给罪犯任何关于其状态的信息。让我们分别称罪犯为X,Y,Z。罪犯X私下问警卫Y或Z哪个会被处死,因为他已经知道他们中至少一个人会死,警卫不能透露任何关于他本人状态的信息。警卫告诉X,Y将被处死。X感到很高兴,因为他认为他或者Z将被释放,这意味着他被释放的概率是1/2。他正确吗?或者他的机会仍是1/3?请解释。题目中罪犯问警卫另外两个人哪个被处死了,因为在另外两人中至少有一人被处死,所以警卫告诉犯人一个人被处死这件事的概率就是1。设A为X被释放 阅读全文
posted @ 2012-11-17 15:21 particle 阅读(1042) 评论(2) 推荐(0)
vc++中汉字输出问题
摘要:首先引用两篇非常好的博文,什么时候对字符集编码概念不清楚的时候,一定要看看。也谈计算机字符编码浅谈C中的wprintf和宽字符显示另外引用一个列举的宽字符处理函数比较全的文章,文章中没提到的是文件打开函数_wopen(...),格式化输出函数wprintf(...)。宽字符处理函数函数与普通函数对照表然后是两段我做的小例子,都可以输出汉字:使用宽字符(Unicode编码,vc下为UTF-16,所有字符都是16位,其中ASCII字符高字节0x00):#include "stdio.h"#include "stdlib.h"#include <loca 阅读全文
posted @ 2012-11-03 11:38 particle 阅读(4131) 评论(0) 推荐(0)
c/c++ 缓冲输入和非缓冲输入
摘要:C语言有缓冲输入和非缓冲输入两种情况,默认缓冲输入,因为有的计算机不支持非缓冲输入。缓冲输入下,通过标准输入(键盘)输入的字符会先存在输入缓冲区里,同时会回显到屏幕上。这样就可以在输入回车(将输入缓冲区清空,并发送到程序的输入队列中,供程序使用)之前,进行输入的修改。但是也支持非缓冲输入,不需要输入回车来将输入发送给程序,而是键盘的任何输入都直接发送到程序的输入队列中。简言之,缓冲输入的流程是:键盘-》输入缓冲区-》程序中的输入队列 非缓冲输入的流程是: 键盘-》程序中的输入队列getche()和getch()这两个函数是用于非缓冲输入的,前者提供回显(记:多一个字母,多一个小功能),后者不. 阅读全文
posted @ 2012-11-02 16:14 particle 阅读(4621) 评论(0) 推荐(1)