小编las*_*ash的帖子

HTTP :: Request用标题中的连字符替换下划线

使用HTTP::Requestfrom 指定包含下划线的自定义标题时LWP::UserAgent,下划线将更改为连字符:

use LWP::UserAgent;

my $rq = HTTP::Request->new("GET", "http://cpan.org");
$rq->header("X-FOO_BAR", "xyzzy");
print $rq->as_string;
Run Code Online (Sandbox Code Playgroud)

输出:

GET http://cpan.org
X-FOO-BAR: xyzzy
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题?

  • perl v5.26.2
  • LWP:UserAgent 1.9601
  • linux 4.17.8-1-ARCH

perl header http

6
推荐指数
1
解决办法
461
查看次数

Python numpy数据指针地址更改而不进行修改

编辑

经过一些更多的摆弄,我到目前为止已经隔离了以下状态:

  1. 直接输入变量时,一维数组给出两个不同的地址,使用时只有一个print()
  2. 2D阵列(或矩阵)给出3个不同的地址直接输入变量时,和2使用时print()
  3. 3D阵列给出2个直接输入变量时不同的地址,并且仅一个使用时print()(显然一样与1D阵列)

像这样:

>>> a = numpy.array([1,2,3], dtype="int32")

>>> a.data
<memory at 0x7f02e85e4048>
>>> a.data
<memory at 0x7f02e85e4110>
>>> a.data
<memory at 0x7f02e85e4048>
>>> a.data
<memory at 0x7f02e85e4110>
>>> a.data
<memory at 0x7f02e85e4048>

>>> print(a.data)
<memory at 0x7f02e85e4110>
>>> print(a.data)
<memory at 0x7f02e85e4110>
>>> print(a.data)
<memory at 0x7f02e85e4110>
>>> print(a.data)
<memory at …
Run Code Online (Sandbox Code Playgroud)

python pointers numpy

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

销毁PyCapsule对象

根据文档,第三个参数PyCapsule_New()可以指定一个析构函数,我假设应该在解压缩时调用它.

void mapDestroy(PyObject *capsule) {

    lash_map_simple_t *map;
    fprintf(stderr, "Entered destructor\n");
    map = (lash_map_simple_t*)PyCapsule_GetPointer(capsule, "MAP_C_API");
    if (map == NULL)
         return;
    fprintf(stderr, "Destroying map %p\n", map);
    lashMapSimpleFree(map);
    free(map);

}

static PyObject * mapSimpleInit_func(PyObject *self, PyObject *args) {

    unsigned int w;
    unsigned int h;
    PyObject *pymap;

    lash_map_simple_t *map = (lash_map_simple_t*)malloc(sizeof(lash_map_simple_t));

    pymap = PyCapsule_New((void *)map, "MAP_C_API", mapDestroy);

    if (!PyArg_ParseTuple(args, "II", &w, &h))
        return NULL;

    lashMapSimpleInit(map, &w, &h);

    return Py_BuildValue("O", pymap);

} 
Run Code Online (Sandbox Code Playgroud)

但是,当我实例化对象并删除它或退出Python控制台时,似乎没有调用析构函数:

>>> a = mapSimpleInit(10,20)
>>> a
<capsule object …
Run Code Online (Sandbox Code Playgroud)

c python cpython

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

golang地图预留了多少内存?

给定未指定初始空间的映射分配,例如:

foo := make(map[string]int)
Run Code Online (Sandbox Code Playgroud)

文件表明,这里的内存分配是依赖于实现.那么(怎么样)我可以告诉我的实现分配给这张地图的内存量是多少?

dictionary heap-memory go

5
推荐指数
2
解决办法
3207
查看次数

由strncpy()复制时预定义的字符串段错误

为什么......

char *dst = (char*) malloc(sizeof(char) * 11);
char *src = "ABCDEFGHIJKLMNOPQRSTUVQXYZ";
strncpy(dst, src, 10);
Run Code Online (Sandbox Code Playgroud)

......工作正常,但......

char *dst = "ABCDEFGHIJ\0";
char *src = "ABCDEFGHIJKLMNOPQRSTUVQXYZ\0";
strncpy(dst, src, 10);
Run Code Online (Sandbox Code Playgroud)

... 甚至 ...

char *dst = "ABCDEFGHIJ\0";
char *src = "KLMNOPQRST\0";
strncpy(dst, src, 10);
Run Code Online (Sandbox Code Playgroud)

给段

另外,这是怎么回事:

char *dst = (char*) malloc(sizeof(char) * 10); // also works with 9
char *src = "ABCDEFGHIJKLMNOPQRSTUVQXYZ\0";
strncpy(dst, src, 10);
Run Code Online (Sandbox Code Playgroud)

将11个字节复制到分配有10个字节的指针中原则上应该失败?

c malloc segmentation-fault strncpy

0
推荐指数
1
解决办法
73
查看次数