小编use*_*747的帖子

为什么这个十六进制值输出为负数?

char buffer_b[5] = { 0xDA, 0x00, 0x04, 0x00, 0x07 };
printf("%d\n%d\n%d", buffer_b[0], buffer_b[2], buffer_b[4]);
Run Code Online (Sandbox Code Playgroud)

这给了我输出:

-38
4
7
Run Code Online (Sandbox Code Playgroud)

但是我期待:

218
4
7
Run Code Online (Sandbox Code Playgroud)

谢谢.

c c++

3
推荐指数
2
解决办法
354
查看次数

无法使用getElementsByName()在IE中切换表行的显示

我想根据选择框的值显示和隐藏表的行,这适用于Firefox但不适用于IE:

<select onChange="javascript: toggle(this.value);">
 <option value="cat0">category 0</option>
 <option value="cat1">category 1</option>
</select>

<table>
<tr name="cat0">
  <td>some stuff v</td>
  <td>some stuff v</td>
</tr>
<tr name="cat0">
  <td>some stuff d</td>
  <td>some stuff d</td>
</tr>
<tr name="cat1">
  <td>some stuff a</td>
  <td>some stuff a</td>
</tr>
<tr name="cat1">
  <td>some stuff b</td>
  <td>some stuff b</td>
</tr>
</table>
<script type="text/javascript">
function toggle(category)
{
    // turn everything off
    for (var i = 0; i < 2; i++)
    {
        var cat = document.getElementsByName('cat' + i);
        for (var j = 0; j …
Run Code Online (Sandbox Code Playgroud)

html javascript dhtml

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

为什么所有这些访问数组的方法都有效?

在我看来,其中一些应该失败,但他们都输出了他们应该:

$, = "\n";
%test = (
    "one" => ["one_0", "one_1"],
    "two" => ["two_0", "two_1"]
);

print @{$test{"one"}}[0],
      @{$test{"one"}}->[0],
      $test{"two"}->[0],
      $test{"one"}[1];
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

arrays perl hash

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

关于javascript命名空间的问题

通过在第二个代码片段中直接声明NS,可以完成同样的事情,以下示例中返回方法的重点是什么?

1:

var NS = function() {
    return {
        method_1 : function() {
            // do stuff here
        },
        method_2 : function() {
            // do stuff here
        }
    };
}();
Run Code Online (Sandbox Code Playgroud)

2:

var NS = {
    method_1 : function() { do stuff },
    method_2 : function() { do stuff }
};
Run Code Online (Sandbox Code Playgroud)

javascript namespaces

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

更容易从现有字符串创建字母数字+'_'字符串?

是否有更好/更简单的方法\w+从现有字符串创建字符串?

 char *FixName(char *name)
 {
     char *ptr, tmp;
     char *new = malloc(strlen(name)+1);
     sprintf(new, "str_");
     for (ptr = name + 4; *ptr; ptr++)
     {
         if ((*ptr >= '0' && *ptr <= '9') ||
             (*ptr >= 'A' && *ptr <= 'Z') ||
             (*ptr >= 'a' && *ptr <= 'z') ||
             *ptr == '_')
         {
             tmp = *(ptr+1);
             *(ptr+1) = '\0';
             strcat(new, ptr);
             *(ptr+1) = tmp;
         }
     }
     free(name);
     return new;
 }

 // USAGE:
 //char *j = strdup("str_[](1.00)");
 //printf("J: %s\n", j); …
Run Code Online (Sandbox Code Playgroud)

c string

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

这个c strdup代码有什么问题?

考虑以下代码:

char *strs[] = { "string1", "string2", NULL };
char *ptr1 = NULL, *ptr2 = NULL, *tmp;
short iter = 0;

tmp = ptr1;
while (iter < 2)
{
   tmp = strdup(strs[iter]);
   tmp = ptr2;
   iter++;
}

printf("1: %s\n2: %s\n", ptr1, ptr2);
Run Code Online (Sandbox Code Playgroud)

我希望这输出"string1 \nstring2 \n",但str1和str2保持为null.我究竟做错了什么?

c strdup

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

你能用十六进制声明char**中的数据吗?

让我说我有这个

char *something[] = { 
    "/bi", 
    "-c", 
    "5", 
    NULL, 
    NULL 
};
Run Code Online (Sandbox Code Playgroud)

但是我想用十六进制声明它,我该怎么做呢; 编译器一直在向我发错:

char *something[] = { 
    {0x2f,0x62,0x69},
    {0x2d,0x63},
    {0x35},
    {0x00}, 
    {0x00}
};
Run Code Online (Sandbox Code Playgroud)

为此添加其他内容,0x00总是为空?0x00总是在NULL为-1的系统上转换为NULL?

c

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

如何修复此编译器警告的原因?

以下代码是生产时我编译它在32位系统的警告: 1087: warning: integer constant is too large for "long" type; 我怎么能解决这个问题所以我没有得到那个警告,它在32位上运行正常?

有效的输入是:

unsigned char str[] = "\x00\x17\x7c\x3a\x67\x4e\xcb\x01";
Run Code Online (Sandbox Code Playgroud)

并且mypow函数返回unsigned long long.

     unsigned long long high, low, nano;
     high = // line 1087
         (str[7]&0xff) * mypow(2,56) +
         (str[6]&0xff) * mypow(2,48) +
         (str[5]&0xff) * mypow(2,40) +
         (str[4]&0xff) * mypow(2, 32);
     low =
         (str[3]&0xff) * mypow(2,24) +
         (str[2]&0xff) * mypow(2,16) +
         (str[1]&0xff) * mypow(2,8) +
         (str[0]&0xff);
     nano = ((high + low)/10000000) - (unsigned long long)11644473600;
     return localtime((time_t*)&nano);
Run Code Online (Sandbox Code Playgroud)

c 32bit-64bit

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

在mac上释放未对齐的指针

我在Mac上运行程序时遇到此问题; linux 64和32位都很好,但在mac上我得到了一堆:

*** malloc[437]: error for object 0xbfffe970:
Non-aligned pointer being freed (2) 
Run Code Online (Sandbox Code Playgroud)

在我的程序执行结束时,我在数据结构中释放了一堆指针.代码很长,但有没有人知道为什么它没有错误在linux上工作但不是mac?

c

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

使用DLL中的函数而不加载它?

我正在看一些c ++/c代码,开源的ovaldi项目.我看到它们在发行版中包含pcre.dll,并在代码中调用该库中的函数; 但他们永远不会加载DLL; 它们只包含pcre.h头文件,似乎可以访问这些函数.他们真的只是用静态库构建并在发生意外时分发pcre.dll,还是有办法做到这一点?

c c++ dll linker pcre

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

标签 统计

c ×7

c++ ×2

javascript ×2

32bit-64bit ×1

arrays ×1

dhtml ×1

dll ×1

hash ×1

html ×1

linker ×1

namespaces ×1

pcre ×1

perl ×1

strdup ×1

string ×1