小编CCo*_*der的帖子

sizeof在可变长度数组上的行为(仅限C)

我的问题是sizeof()当传递参数是一个动态数组变量长度数组时,究竟如何表现.

我们来看一个例子:

int fun(int num_of_chars)
{
    char name_arr[num_of_chars] = {0};

    /* Do something*/

    return sizeof(name_arr);
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,很明显返回值不是编译时常量.因为大小取决于运行时的值num_of_chars.

引用C99标准(6.5.3.4):

sizeof操作者产生其操作数的大小(以字节为单位),其可以是表达或类型的括号名称.大小由操作数的类型确定.结果是整数.如果操作数的类型是可变长度数组类型,则计算操作数; 否则,不评估操作数,结果是整数常量.

我从[....操作数被评估....]中可以理解的是,当传递的参数sizeof()动态数组变量长度数组时,sizeof()'表现得像'一个函数而不是一个运算符.

我的理解是对的吗?

c sizeof

15
推荐指数
2
解决办法
3572
查看次数

当TCP keep-alive中断连接时,我会得到什么套接字错误?

我有一组带有保持活动的TCP套接字(间隔1分钟),由select(2) 循环控制(选择读取).

  • select(2)如果集合中的一个套接字发生了保持活动超时,则会返回错误吗?
  • 哪个错误会read(2)返回?

c sockets linux tcp

9
推荐指数
1
解决办法
4789
查看次数

消除矩阵的舍入误差

我的问题是我有一个矩阵,其中所有行的总和,以及所有列的总和为零.所有数字都舍入为x小数.

然后我将整个矩阵乘以0到1之间的数字(例如1/6)并将所有数字四舍五入为x小数.现在我无法确定行和列的总和是否为零.我希望在最小可能的调整(或至少非常小的调整)下,总和再次为零

是否存在可以解决此类问题的算法?

示例(非常简单):矩阵:

    200  -200  0

    400  400  -800

   -600 -200  800
Run Code Online (Sandbox Code Playgroud)

round2((1/6)*矩阵)

33.33  -33.33  0   

66.67  66.67   -133.33

-100   -33.33  133.33
Run Code Online (Sandbox Code Playgroud)

algorithm linear-equation rounding

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

使用XSLT将XML转换为JSON的问题

我正在尝试使用XSLT将XML转换为JSON.以下是我的XML和XSLT代码.

XML文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Subrayana kathe</title>
        <artist>Subba</artist>
        <country>India</country>
        <price>30</price>
        <year>1986</year>
    </cd>
</catalog>
Run Code Online (Sandbox Code Playgroud)

XSLT文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:template match="/">
      {
"catalog":[
      <xsl:for-each select="catalog/cd">
         {"title":"
         <xsl:value-of select="title" />
         ",
"artist":"
         <xsl:value-of select="artist" />
         "},
      </xsl:for-each>
      ]
      }
   </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

XSLT的输出:

{
   "catalog":[
      {
         "title":"Empire Burlesque",
         "artist":"Bob Dylan"
      },
      {
         "title":"Subrayana kathe",
         "artist":"Subba"
      },(Problematic comma)
   ]
}
Run Code Online (Sandbox Code Playgroud)

问题是在数组中最后一个对象的末尾有一个额外的逗号(',').有没有办法在XSLT中避免这种情况?

xml xslt json

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

隐式调用时如何使用RTLD_DEEPBIND?

现在我有3个共享对象,A.so,B.so,C.so

    A.c    
    void libA()  
    {  
        common();  
    }  

    B.c
    void common()  
    {  
        printf("COME HERE B\n");  
    }  

    C.c
    void common()  
    {     
        printf("COME HERE C\n");  
    }  
    (just ingore the .h files)

    test.c
    int main()  
    {  
      libA();    
      return 1;  
    }  

complie:  
gcc -fPIC -shared libB.so libB.c  
gcc -fPIC -shared libA.so libA.c ./libB.so  
gcc -o test test.c libC.so libA.so  
Run Code Online (Sandbox Code Playgroud)

我希望结果是"来这里B",我可以用dlopenRTLD_DEEPBIND标志,
但它的成本太多时间从隐式调用函数改变成显式调用在我的项目.
反正有没有解决这个问题?

gcc -Wl,-Bsymbolic 在此解决方案中不起作用.

好吧,如果Ac包含普通的实现.它确实有效.

c linux shared-libraries shared-objects dlopen

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

另一个全局钩子影响我的全局钩子

我在C#.NET中编写了一个全局键盘钩子程序,就像一个键盘记录程序,它将结果写入文件.但是我使用了另一个程序,它在同一台计算机上支持类型越南语 - 它还使用全局钩子来固定设置键盘到越南字符 - 这对我的程序有影响!

示例:当我键入以下内容:"xin chao2,to6i la2 mot65 nguoi72 Viet65 Nam"没有我的程序,它将在我键入的每个字符后再次修复:xinchào,tôilàmộtngườiViệtNam.

但是当我使用我的全局钩子时,我收到文件中的结果:

xin chao2[Back]
[Back]
[Packet]
[Packet]
[Escape]
 toi6[Back]
[Back]
[Packet]
[Packet]
[Escape]
 la2[Back]
[Packet]
[Escape]
 nguoi7[Back]
[Back]
[Back]
[Packet]
[Packet]
[Packet]
[Escape]
2[Back]
[Back]
[Packet]
[Packet]
[Escape]
Viet6[Back]
[Back]
[Packet]
[Packet]
[Escape]
5[Back]
[Back]
[Packet]
[Packet]
[Escape]
 Nam 
Run Code Online (Sandbox Code Playgroud)

那么,我如何修复此错误,排除程序支持类型越南语的效果,而不删除或禁用它,或接受它的效果,但结果文件看起来像没有我的程序类型?

对不起,如果您对我的英语感到不舒服!

c# hook winapi keyboard-hook

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

使用Java进行TestNG

在使用TestNG和Java时,我收到以下错误:'类型不匹配:无法将测试转换为注释'

注意:使用eclipse IDE.构建路径包含TestNG jar还安装了用于eclipse IDE的TestNG插件.

你能告诉我为什么我得到上述错误吗?

谢谢

码:

import org.testng.annotations.*;
public class ChangeResolutionOnMainWatch {

    @BeforeTest

    public void startTest() throws Exception {
        watch.startSelenium();
        stream_delay=Integer.parseInt(System.getProperty("stream_delay").trim());
    }

    @Test 

    public void launchFalcon()throws Exception{

        watch.deleteAllCookie();
        watch.launchFalcon();
    }
}          
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,'@Test'表示法给出了错误

testng

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

无法在Solr云上创建集合

我无法在Solr Cloud中创建名为“ testCollection”的集合。

网址:: 8080 / solr / admin / collections?action = CREATE&name = testCollection

回应

<str name="Operation create caused exception:">
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: No config set found to associate with the collection.
</str>
Run Code Online (Sandbox Code Playgroud)

根据文档:https://cwiki.apache.org/confluence/display/solr/Collections+API#CollectionsAPI)用于创建收集API,"collection.configName"不是必填字段。如果未提供,Solr将默认使用集合名称作为配置名称。

为什么我仍然面临这个问题?

是否必须使用collection.configName?

如何在Zookeeper上找到关联的collection.configName?

solr solrj solrcloud solr4

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

从malloc()中获取垃圾数据的频率是多少次

在CI中,通过使用malloc()你可以偶尔分配包含一些垃圾数据的内存,如果你从未使用memset()或使用过calloc().

拾取垃圾数据的频率是多少?

是否有一种安全的方法可以避免这种情况而不必使用calloc()memset()每次都使用?

c memory malloc

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

如何在 Pandas 中使用非数字数据制作数据透视表?

我有一个数据框如下

name    window_num  channel
----------------------------
Alice   1           cnn
Bob     2           fox
Alice   3           msnbc
Run Code Online (Sandbox Code Playgroud)

我希望数据采用以下格式。

name    1       2       3 
------------------------------
Alice   cnn     nan     msnbc           
Bob     nan     fox     nan
Run Code Online (Sandbox Code Playgroud)

我尝试过熊猫pivot_table方法。

df.pivot_table(index=['name'],columns=['window_num'],values=['channel'])

但这期望值列是数字以进行聚合。

python pandas

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