一个有趣的例子

//这个例子让我想起了mongo如何突破32的限制
#include <iostream>

class stumble
{
public:
protected:
private:
    //对于class一样的访问权限的数据成员是放在一起的,但不同的权限不是一样的
    char pc[1];//好像protected放在private前面就不能使用下面main之中的方法,
};

int main()
{
    struct mumble
    {
        char pc[1];
    };
    char szString[32];
    std::cin >> szString;
    std::cout << strlen(szString);//strlen是不包括\0的
    //对于class就不能这样做
    struct mumble *pmumbl = (struct mumble*)malloc(sizeof(struct mumble) + strlen(szString));//在pc的后面分配了一块内存
    strcpy_s(&pmumbl->pc[0], 6, szString);//将内容复制到pc处,用_s安全,不然越界了也不知道,复制的时候会将/0附近进去的
    std::cout << pmumbl->pc;
    getchar();
    return 0;
}

 

posted @ 2014-10-07 13:21  zzyoucan  阅读(167)  评论(0编辑  收藏  举报