类或者对象的大小可以用sizeof运算符算出,即sizeof(object_name)。可是sizeof(object_name)的值与其成员的大小是什么关系呢,答案是:一个对象的大小>=所有非静态成员大小的总和。
为什么是大于等于而不是正好相等呢?超出的部分主要有以下两方面:
1) C++对象模型本身
对有虚函数的类来说,必须为它的对象提供运行时类型信息(RTTI,R...
分类:
其他好文 时间:
2015-02-09 21:43:55
阅读次数:
210
VC CreateWindow 找不到窗口类,有提示是因为没有调用RegisterClass注册窗口类,可是我已经使用RegisterClassEx注册了!
//函数:MyRegisterClass
//作用:注册窗口类ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wndclass;
wndclass.cbSize = sizeof...
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。
Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,
为什么?
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str 仍然为 NULL
str...
分类:
其他好文 时间:
2015-02-09 11:03:49
阅读次数:
144
#include "stdafx.h"#include #include #include int Call(char Cmd[]){ SECURITY_ATTRIBUTES sa; HANDLE Hread,Hwrite; sa.nLength = sizeof(SECURITY_ATTRIBUT...
分类:
其他好文 时间:
2015-02-08 19:28:04
阅读次数:
365
穷举第一个字符串的所有子串,然后再判断其是否是其它字符串的子串。
然后注意输出字典序最小的答案。
判断枚举的子串是不是其它字符串子串时可以使用KMP,其实也可以直接暴力,因为题目数据范围不大。
学到一个技巧:可以使用memset(str,’\0’,sizeof(str)将字符数组清空。
还有一点需要注意的是在自己组合的字符串后面一定要记得加上字符串结束标志’\0’。代码如下:#include...
分类:
其他好文 时间:
2015-02-08 12:54:21
阅读次数:
134
例如 int * p[10]
怎么确定这个变量的类型呢,众所周知,利用sizeof一个变量,和一个变量的类型得到的值应该是相同的。
如下:
#include
int main(void)
{
int * p[10];
printf("%ld %ld\n", sizeof(p),sizeof(int * [10]));
//我这里打印出来40(32位系统)告诉我们这应该是一个数组类型...
分类:
其他好文 时间:
2015-02-08 00:31:04
阅读次数:
206
首先明确各数据类型占多大的空间。例如int到底是占2字节还是4字节空间: 在TC里,int是2字节的(主要是因为TC是16位的,所以int类型也该是16位的)VC++里,int是4字节的,因为现代操作系统下的软件大多是是32位。64位的VC++,本来按理说,该是8字节的,但是可能为了维持32位的源代...
分类:
编程语言 时间:
2015-02-07 22:54:01
阅读次数:
266
DEVMODE lpDevMode; lpDevMode.dmBitsPerPel = 32; lpDevMode.dmPelsWidth = 1024; lpDevMode.dmPelsHeight = 768; lpDevMode.dmSize = sizeof(...
分类:
其他好文 时间:
2015-02-05 11:11:49
阅读次数:
146
在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简...
分类:
其他好文 时间:
2015-02-04 18:19:33
阅读次数:
316
#include
using namespace std;
int main()
{
int a[] = {1,-1,3,-7,10,-3,6,-8,1};
int size = sizeof(a)/sizeof(int);
int curSum = 0;
int maxSum = a[0];
for(int i=0;i<size;i++){
...
分类:
编程语言 时间:
2015-02-04 16:36:04
阅读次数:
163