小编tom*_*asz的帖子

程序终止后动态分配内存

当包含动态分配的内存(使用malloc/new)而没有空闲/删除调用的C/C++程序终止时,动态分配的内存会发生什么?操作系统是否收回内存或者其他程序无法访问该内存?

c c++ malloc memory-leaks memory-management

23
推荐指数
3
解决办法
7387
查看次数

php中socket_connect上的“连接被拒绝”错误

我正在尝试将一些代码从 perl 转换为 php。

Perl 代码如下所示:

my $handle = Connect($port, $host);

我正在尝试使用套接字在 php 中做同样的事情。我尝试过 socket_create 和 socket_connect、socket_create 和 socket_bind 以及 fsocketopen。

结果,我被错误消息困住了,说“连接被拒绝”或“权限被拒绝”:

socket_connect() [function.socket-connect]:无法连接 [111]:连接被拒绝

我不确定这是我需要解决的问题,还是权限问题,因为 perl 中的代码工作正常(我没有编写该代码)。

我的 php 代码如下所示:

$socket =  socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if(!$socket){
        die('Error: socket_create()');
}
if(!socket_connect($socket,$host,$port)) {
        die('Error: socket_connect()');
}
Run Code Online (Sandbox Code Playgroud)

我不是管理服务器的人,所以如果是权限问题,我需要向其他人询问访问权限。我应该具体要求什么?

还是应该使用其他功能连接到服务器?我是 perl 的新手,所以我不确定 socket_connect 是否是等效的函数。

谢谢。

php sockets perl

5
推荐指数
1
解决办法
6891
查看次数

在同一个for循环中多次调用new

这是我的代码的快速片段,用于解析分子动力学模拟的PDB文件:

Structure *s = new Structure(pdb_filename);
Chain     *c = new Chain();

while( ... read file ... ) {
    if ( ... new chain ... ) {
        Chain *c = new Chain();
        s->add_child(c);        // Add reference to a vector to 
                                // save the Chain for later
    }
}
Run Code Online (Sandbox Code Playgroud)

调用包含函数时,代码将正常运行,并提供全新的结构和链对象,如代码段的前两行所示.

当循环遍历文件时再次满足新链的条件时,代码将返回与之前相同的链指针.

g ++会一遍又一遍地给出相同的指针吗?有没有办法解决这个问题?如果我将c指针添加到's'子矢量,我假设调用delete c会导致更大的麻烦?

c++ dynamic new-operator

1
推荐指数
2
解决办法
838
查看次数

标签 统计

c++ ×2

c ×1

dynamic ×1

malloc ×1

memory-leaks ×1

memory-management ×1

new-operator ×1

perl ×1

php ×1

sockets ×1