问题列表 - 第13198页

我是C的新手,有人可以解释为什么这个字符串的大小可以改变吗?

我从来没有真正做过多少C但是我开始玩它了.我写的小片段像下面这样去理解的关键结构/功能的使用和行为C中的一个下面我写试图理解之间的区别char* stringchar string[]如何则字符串的长度工作.此外,我想看看是否sprintf可以用来连接两个字符串并将其设置为第三个字符串.

我发现我用来存储其他两个串联的第三个字符串必须用char string[]语法设置,否则二进制文件会死掉SIGSEGV (Address boundary error).使用数组语法设置它需要一个大小,所以我最初通过将其设置为其他两个字符串的组合大小来开始.这似乎让我足够好地执行连接.

但出于好奇,我尝试将"连接"字符串扩展为比我分配的字符更长.令我惊讶的是,它仍然有效,字符串大小增加,可能会printf很好.

我的问题是:为什么会发生这种情况,它是无效还是有风险/缺点?此外,为什么char str3[length3]有效但在行尝试执行char str3[7]时会导致"SIGABRT(Abort)" sprintf

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main() {
    char* str1 = "Sup";
    char* str2 = "Dood";

    int length1 = strlen(str1);
    int length2 = strlen(str2);
    int length3 = length1 + length2;

    char str3[length3];
    //char str3[7];

    printf("%s (length %d)\n", str1, length1);           // Sup (length 3)
    printf("%s (length %d)\n", str2, length2);           // …
Run Code Online (Sandbox Code Playgroud)

c string printf char

0
推荐指数
2
解决办法
798
查看次数

以编程方式在Windows Vista上注册.dll(使用DllRegisterServer)

可以使用以下步骤注册.DLL,而不是调用regsvr32.exe:

HINSTANCE hLib = ::LoadLibraryEx(dllPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
HRESULT (STDAPICALLTYPE* lpDllEntryPoint)(void);
(FARPROC&)lpDllEntryPoint = ::GetProcAddress(hLib, "DllRegisterServer");
const HRESULT hRes = (*lpDllEntryPoint)();
Run Code Online (Sandbox Code Playgroud)

这在Windows XP上运行正常.遗憾的是,它在Vista上失败了,但只有一些特定的DLL.hRes变成E_ACCESSDENIED.我想这是一个安全问题.有谁知道如何从Windows Vista上的代码注册.DLL?

注意:我在运行此代码时以管理员身份登录.

windows dll windows-vista

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

Groovy域映射

我有一个将pdf报告保存到Oracle DB中.报告的dataType是byteArray.

域定义如下:

static constraints = {
 report(nullable:false)
 company(nullable:false)    
 month(nullable:false)    
}

byte[] report
Company company
Date month
Run Code Online (Sandbox Code Playgroud)

}

不幸的是,这在Oracle DB中定义了一个具有RAW data_type和255的长度的字段.

我该如何将这个字段定义到域类中?应该定义为BLOB?

如果是的话,怎么做?

提前致谢.

oracle grails groovy grails-orm domain-mapping

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

如何比较python中的两个列表并返回匹配项

我想获取两个列表并找到两者中出现的值.

a = [1, 2, 3, 4, 5]
b = [9, 8, 7, 6, 5]

returnMatches(a, b)
Run Code Online (Sandbox Code Playgroud)

[5]例如,会回来.

python list

349
推荐指数
12
解决办法
83万
查看次数

如何配置HTTPClient以对SOCKS代理进行身份验证?

我需要针对SOCKS代理设置代理身份验证.我发现这篇文章提供的说明似乎与常见的HTTP代理一起使用.

        httpclient.getHostConfiguration().setProxy("proxyserver.example.com", 8080);

        HttpState state = new HttpState();
        state.setProxyCredentials(new AuthScope("proxyserver.example.com", 8080), 
           new UsernamePasswordCredentials("username", "password"));
        httpclient.setState(state);
Run Code Online (Sandbox Code Playgroud)

这也适用于SOCKS代理,还是我必须做一些不同的事情?

java proxy http apache-commons-httpclient

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

在Cakephp中创建单选按钮的表单助手

我正在尝试使用Cakephp创建一个单选按钮,就像结果应该类似的那样

         <div data-attr="radio" id="1">
          <label id="label1">Untitled1</label><br/>

          <input type="radio" value="option1" id="Radio11" name="Workexperience"/>
          <label for="Radio11">Option1</label>
         <input type="radio" value="option2" id="Radio12" name="Workexperience"/>
         <label for="Radio12">Option2</label>

        </div>
Run Code Online (Sandbox Code Playgroud)

如何使用Form helper生成如此..请建议我..

cakephp

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

在SQL UPDATE中将值向上舍入为最接近的整数

我正在运行SQL,需要将值四舍五入到最接近的整数.

我需要的是45.01轮到46轮.还有45.49轮到46轮.还有45.99轮到46轮.我希望一切都达到一个整数位.

如何在UPDATE语句中实现此目的,如下所示?

Update product SET price=Round
Run Code Online (Sandbox Code Playgroud)

sql rounding sql-update

18
推荐指数
6
解决办法
15万
查看次数

如何获取Win32中可用串行端口的列表?

我有一些遗留代码,它通过调用EnumPorts()函数然后过滤以"COM"开头的端口名称来提供PC上可用COM端口的列表.

出于测试目的,如果我可以将此代码用于com0com这样的代码,它将非常有用,它提供了作为零调制解调器循环在一起的虚拟COM端口对.

但是该EnumPorts()函数找不到com0com端口(即使没有过滤"COM").HyperTerminal和SysInternals PortMon都可以看到它们,所以我确信它安装正确.

那么还有其他一些Win32功能可以提供可用串口的明确列表吗?

winapi serial-port

49
推荐指数
3
解决办法
6万
查看次数

如何使用cmake只构建一次目标文件?

我有一个CMakeLists.txt文件,如下所示:

add_executable(exec1 exec1.c source1.c source2.c source3.c)
add_executable(exec2 exec2.c source1.c source2.c source3.c)
add_executable(exec3 exec3.c source1.c source2.c source3.c)
Run Code Online (Sandbox Code Playgroud)

source1.o source2.o source3.o文件需要很长时间才能构建,因为它们对于所有可执行文件都是通用的,所以我希望它们中的每一个都只构建一次.但是,cmake的当前行为是分别为每个exec目标重建它们,这是不必要的重复工作.

有没有办法告诉cmake只构建一次目标文件?

cmake

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

Firefox中的jQuery html()(使用.innerHTML)忽略DOM更改

我真的很惊讶我之前没遇到过这个问题,但似乎在元素上调用jQueries .html()函数会忽略DOM中的更改,即它会返回原始源中的HTML.IE不会这样做.jQueries .html()只是在内部使用innerHTML属性.

这是否意味着发生?我使用的是Firefox 3.5.2.我在下面有一个示例,无论您将文本框值更改为什么,"container"元素的innerHTML只返回HTML标记中定义的值.该示例不使用jQuery只是为了使它更简单(使用jQuery的结果是相同的).

有没有人有一个解决方法,我可以在当前状态下获取容器的html,即包括对DOM的任何脚本更改?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <script type="text/javascript">
            <!--
            function BodyLoad(){                
                document.getElementById("textbox").value = "initial UPDATE";
                DisplayTextBoxValue();
            }

            function DisplayTextBoxValue(){
                alert(document.getElementById("container").innerHTML);             
                return false;
            }
            //-->
        </script>
    </head>
    <body onload="BodyLoad();">
        <div id="container">
            <input type="text" id="textbox" value="initial" />
        </div>
        <input type="button" id="button" value="Test me" onclick="return DisplayTextBoxValue();" />
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html firefox jquery dom innerhtml

21
推荐指数
2
解决办法
2万
查看次数