小编sie*_*nko的帖子

是否在C++的特定情况下删除了没有删除新运算符的对象

如果我们有以下代码段:

MyObject my_object = MyObject(0);
my_object = MyObject(1);
Run Code Online (Sandbox Code Playgroud)

MyObject(0)会发生什么?它被删除了吗?看看我读到的内容,只有当我们离开创建范围时才应删除它,因此anwser可能没有.如果是这种情况除了使用指针之外还有什么方法可以显式删除它吗?

c++ object new-operator

6
推荐指数
2
解决办法
412
查看次数

jmdns在IPv4接口上注册,但广播IPv6

所以我试图在Android 3.2.1(HTC Flyer)上使用jmdns,我正在使用jmdns进行服务发现.一切都很好,除了我的三个设备之一(其余的工作正常)是广播IPv6地址而不是IPv4.这非常奇怪,因为它们都通过DHCP连接到我的家庭网络,因此它们都被分配了IPv4地址.

所以在我的设备上运行

    android.net.wifi.WifiManager wifi = (android.net.wifi.WifiManager) getSystemService(android.content.Context.WIFI_SERVICE);
    multicastLock = wifi.createMulticastLock("mylockthereturn");
    multicastLock.setReferenceCounted(true);
    multicastLock.acquire();
    try {
        jmdns = JmDNS.create();

        jmdns.registerServiceType(jmdnsType);
        String jmdnsName = /* Read from db */;
        serviceInfo = ServiceInfo.create(jmdnsType, huggler_id, server.getLocalPort(), " blah blah");

        jmdns.registerService(serviceInfo);
        Log.d(TAG, "JMDNS service registered on ip " + jmdns.getInterface());
    } catch (IOException e) {
        Log.e(TAG, "Error creating JMDNS service (" + e.getMessage() + ")");
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

它打印出漂亮的IPv4 IP,它实际上匹配了我的网络分配的(成功).

但是当我运行在其他设备上发现服务的代码时.

for(ServiceInfo si : jmdns.list(jmdnsType, 6000)) { // timeout: 6s
        if (si.getName().equals(jmdnsNAme))
            continue;
        try { …
Run Code Online (Sandbox Code Playgroud)

java networking android jmdns

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

使用 PyUSB 重放 Wireshark 捕获的数据包

我用wireshark捕获了一个URB数据包:

219774  438.775555000   host    31.0    USBVIDEO    66  SET CUR Request  [Brightness]
Run Code Online (Sandbox Code Playgroud)

和 Wireshark 显示以下偏移十六进制文本:

0000   c0 f6 0b a3 00 88 ff ff 53 02 00 1f 01 00 00 00  ........S.......
0010   2c a1 51 53 00 00 00 00 57 5e 0b 00 8d ff ff ff  ,.QS....W^......
0020   02 00 00 00 02 00 00 00 21 01 00 02 00 02 02 00  ........!.......
0030   00 00 00 00 00 00 00 00 00 00 00 …
Run Code Online (Sandbox Code Playgroud)

python usb wireshark packet-sniffers pyusb

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

bash脚本中的换行符

在我的公司风格指南中,它说bash脚本不能超过80行.所以我把这个巨大的sed替换了两倍多.如何将其分成更多行以使其仍然有效?我有

sed -i s/AAAAA...AAA/BBBBB...BBB/g
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

sed -i s/AAAAA...AAA/
BBBBB...BBB/g
Run Code Online (Sandbox Code Playgroud)

仍然具有相同的效果.

bash newline

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

为什么strcpy没有分段错误?

可能重复:
未定义,未指定和实现定义的行为

这应该是错误的.为什么不呢.

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

    char str1[] = "Sample string. Sample string. Sample string. Sample string. Sample string. ";
    char str2[2];

    int main ()
    {
      strcpy (str2,str1);
      printf("%s\n", str2);
      return 0;
    }
Run Code Online (Sandbox Code Playgroud)

我使用gcc版本4.4.3与以下命令:

    gcc -std=c99 testString.c -o test
Run Code Online (Sandbox Code Playgroud)

我也尝试将优化设置为o(-O0).

c stack-overflow c99 strcpy

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

(可选)在Android上使用新API

我很确定之前已经问过这个问题,但我无法在任何地方找到它,所以请不要咬人.

我正在编写一个Android应用程序,需要与附近的设备进行通信,如果有两个设备碰巧在附近,我想使用WifiDirect API.

但如果不是这种情况,应用程序仍然可以工作,它将使用其他不太有效的方式在参与设备之间进行通信(如Wifi接入点共享).

我也希望这个应用程序能够在像Android 2.2这样没有WifiDirect API的旧设备上运行(我认为> = 4.0).

那么无论如何都要让我的应用程序可选地使用新的API,但不一定是旧手机的情况?

compatibility android

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

我可以在没有服务器的情况下使用OpenID吗?

我想编写一个JS应用程序,它将使用openid对用户进行身份验证.它将完成它的所有工作,然后将效果传递给某些父webapp.这里的问题是我不想使用任何类型的服务器 - 只是本地JS发送消息重定向和东西.我知道这很奇怪,但我写的应用程序是非常具体的并且需要它.所以问题是: - 它是否可能? - 有没有现成的解决方案?如果不可能的话,你能告诉我它会在什么时候失败吗?我已阅读OpenID规范,但我找不到这样的观点.

javascript openid client-side

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

API 14之前的Android网络发现服务(ish)

我需要能够发现本地网络上的服务(所以说我正在运行聊天应用程序,我想发现运行此聊天的本地网络上的其他设备),但遗憾的是我需要能够在设备上使用它API <16(所以我不能使用android.net.nsd)我确信这可以在不使用NSD API的情况下完成.问题是如何.有帮助吗?

networking android discovery

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