小编vpr*_*jan的帖子

当我写一个数组的末尾时,为什么我的程序没有崩溃?

为什么下面的代码没有任何崩溃@ runtime?

而且尺寸完全取决于机器/平台/编译器!! 我甚至可以在64位机器上放弃200.如何在OS中检测到主函数中的分段错误?

int main(int argc, char* argv[])
{
    int arr[3];
    arr[4] = 99;
}
Run Code Online (Sandbox Code Playgroud)

这个缓冲空间来自哪里?这是分配给进程的堆栈吗?

c stack callstack

16
推荐指数
2
解决办法
4389
查看次数

websocket用于二进制数据传输和解码

我正在阅读规范和许多关于websockets使用的例子.几乎所有人都使用websockets讨论UTF-8或ascii消息传输.

最新的Hybi websocket规范要求支持二进制传输.hybi规范中的REQ 6

我也在某处读到了Chrome支持hybi的地方.但最新版Chrome 7.0仅在pywebsocket配置中选择draft-hixie时才有效.

有没有浏览器支持hybi规范?即使它是开发者,也可以.

standards html5 w3c websocket

10
推荐指数
1
解决办法
7441
查看次数

reinterpret_cast to void*不使用函数指针

我想重新解释将函数指针强制转换为void*变量.函数指针的类型将是类型Class* (*)(void*).

以下是示例代码,

class Test
{
    int a;
};

int main()
{
    Test* *p(void **a);
    void *f=reinterpret_cast<void*>(p);     
}
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于Visual Studio/x86编译器.但是使用ARM编译器,它会产生编译错误.不知道为什么.

错误:#694:reinterpret_cast无法抛弃const或其他类型的限定符

我在将函数指针转换为另一种类型时阅读了解释

我担心下面的解释.

在函数指针和常规指针之间进行转换(例如,将a转换void (*)(void)为a void*).函数指针的大小不一定与常规指针相同,因为在某些体系结构中它们可能包含额外的上下文信息.这可能在x86上运行正常,但请记住它是未定义的行为.

如何void (*)(void*) -> void*有效地进行这样的转换,以至于它在大多数编译器中编译几乎相同?

c++ arm casting

6
推荐指数
2
解决办法
8133
查看次数

标签 统计

arm ×1

c ×1

c++ ×1

callstack ×1

casting ×1

html5 ×1

stack ×1

standards ×1

w3c ×1

websocket ×1