小编Jos*_*hua的帖子

使用Protocol buffer作为通用Data对象?

我们引入协议缓冲区作为一些后端RPC服务的新传输.因为在不同形式的类似对象之间手动穿梭数据是有阻力的,所以我可以预见到堆栈上传递的协议缓冲区实例比仅仅到RPC服务器接口要高一些.

这是我应该避免的吗?处理像普通数据持有者这样的协议缓冲区对象是否安全,它具有很好的便利性,可以快速有效地转换为二进制文件?

我认为它是一种生成数据对象的好方法的另一个原因是必需/可选字段的概念和自动生成的构建器接口.

java protocol-buffers

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

该缓冲区如何溢出?

对于这个问题的标题,我事先表示歉意,但是似乎没有比这更好的了。

这里的想法是argv在另一个变量中复制,本质上是复制它。因此,函数功能的基本思想是,malloc()用于为副本请求一些空间,然后遍历argv每个元素的副本进行迭代。

这是我正在使用的代码,开发环境现在是Visual Studio 2019(即使严格来讲不是C编译器...):

// Returns a copy of an array of strings (intended for argv, but should work with any of them):
wchar_t** copyArgv(size_t argc, wchar_t* argv[]) {
    // Allocate space for the array of arguments:
    wchar_t** argsCopy = malloc(((argc + 1) * sizeof(wchar_t*)));
    if (!argsCopy)
        return NULL;
    // Copy each one of them:
    for (size_t i = 0; i < argc; i++) {
        argsCopy[i] = _wcsdup(argv[i]);
        if (!argsCopy[i]) {
            // Should …
Run Code Online (Sandbox Code Playgroud)

c malloc buffer-overflow

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

当构造函数抛出异常并使用自定义new时,C++如何释放内存

我看到以下结构:

  • new X如果X构造函数抛出,将释放内存.

  • operator new() 可以超载.

运算符新重载的规范定义是void *operator new(size_t c, heap h)和相应的operator delete.

最常见的运算符新重载是placement new,即 void *operator new(void *p) { return p; }

你几乎总是无法调用delete指向放置的指针new.

这导致了一个问题:当X构造函数抛出并使用重载时,如何清理内存new

c++ exception new-operator language-lawyer

13
推荐指数
2
解决办法
1945
查看次数

下划线功能

我在这里看一些C源代码,我发现了这个:

fprintf(stderr, _("Try `%s --help' for more information.\n"), command);
Run Code Online (Sandbox Code Playgroud)

当我看到wxWidget时,我已经看到了下划线,我读到它用于国际化.我发现它真的很可怕(有史以来最不直观的名字),但我认为它只是另一种奇怪的wxWidget惯例.

现在我在一些Alsa源中再次找到它.有谁知道它来自哪里?

c internationalization

12
推荐指数
3
解决办法
2537
查看次数

如何让ssh使用不同的id_dsa

当连接到一个特定主机时,我怎么能说服id_dsa没有存储在〜/ .ssh中.

显而易见的问题是为什么.答案是这个密钥更敏感,需要密码保护,而另一个密钥用于自动化.

虽然这不是一个编程问题,但我不会惊讶地发现这需要一个编程解决方案.

ssh key

8
推荐指数
2
解决办法
3061
查看次数

Lucene搜索和下划线

当我使用Luke使用标准分析器搜索我的Lucene索引时,我可以看到我搜索的字段包含MY_VALUE形式的值.当我搜索字段:"MY_VALUE"但是,查询被解析为字段:"my value"

是否有一种简单的方法来转义下划线(_)字符,以便它搜索它?

编辑:

4/1/2010太平洋标准时间上午11:08

我认为Lucene 2.9.1的令牌化程序中存在一个错误,之前可能存在错误.加载Luke并尝试搜索"BB_HHH_FFFF5_SSSS",当有数字时,返回以下标记:

"bb hhh_ffff5_ssss"

经过一些测试,我发现这是因为数字.如果我输入

"BB_HHH_FFFF_SSSS",我明白了

"bb hhh ffff ssss"

此时,我倾向于使用tokenizer bug,除非该数字的存在应该具有此行为,但我不明白为什么.

谁能证实这一点?

lucene lucene.net

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

切换C:变量中的语句以防万一?

#include <stdio.h>
int main(int argc, char *argv[]){
    char a = 'c';
    switch('c'){
        case a:
            printf("hi\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

以上内容不会为此错误编译:

case label does not reduce to an integer constant
Run Code Online (Sandbox Code Playgroud)

为什么不允许这样做?

c compiler-construction switch-statement

8
推荐指数
2
解决办法
8901
查看次数

如何在UWP应用程序中播放.mp3(或其他)文件?

我试试这个:

PlayMusic = new MediaElement();
PlayMusic.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.Media;

PlayMusic.Source = new Uri(@"C:\Users\UserName\Desktop\C:\Users\user\Desktop\Kill The Alarm - Begin Again.mp3");
PlayMusic.Play();
Run Code Online (Sandbox Code Playgroud)

显示屏上不再显示错误消息(尝试catch运行清理).

对不起,简短说明......我可以很好地阅读和理解英语,但我很难说和写.

c# audio windows-store windows-store-apps uwp

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

如何在c#中使用json对象

我正在使用一个来自API的json,这就是我所说的:

{
  "popularity": 3.518962,
  "production_companies": [
    {
      "name": "value1",
      "id": 4
    },
    {
      "name": "value2",
      "id": 562
    },
    {
      "name": "value13",
      "id": 14654
    },
    {
      "name": "value4",
      "id": 19177
    },
    {
      "name": "value5",
      "id": 23243
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我已经可以返回值了 popularity

作为一个例子,我需要知道如何获取它的值namename它是什么?

我也尝试将它转换为数组,但没有工作或我做错了什么.

电影课:

public class Movie {

    public string popularity {get; set;}
    public object production_companies {get; set;}

    public Movie GetBasic(string id) {
        string json = @"{
                      "popularity": 3.518962,
                      "production_companies": [
                        {
                          "name": "value1",
                          "id": 4
                        }, …
Run Code Online (Sandbox Code Playgroud)

c# indexing json object key-value

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

size_t(SIZE_MAX)的最大值是否相对于其他整数类型定义?

我正在编写一个函数库,可以安全地在各种数字类型之间进行转换或者尝试.我的意图大致相当于创建有用库和学习C边缘案例.

int-到- size_t功能引发了GCC -Wtype-limits,声称我不应该测试,如果一个警告int是大于SIZE_MAX,因为它永远不会是真实的.(另一个转换intssize_t生成相同警告的函数SSIZE_MAX.)

我的MCVE,有额外的评论和婴儿步骤,是:

#include <stdint.h>  /* SIZE_MAX */
#include <stdlib.h>  /* exit EXIT_FAILURE size_t */

extern size_t i2st(int value) {
    if (value < 0) {
        exit(EXIT_FAILURE);
    }
    // Safe to cast --- not too small.
    unsigned int const u_value = (unsigned int) value;
    if (u_value > SIZE_MAX) {  /* Line 10 */
        exit(EXIT_FAILURE);
    }
    // Safe to cast --- not too big.
    return (size_t) …
Run Code Online (Sandbox Code Playgroud)

c types integer limit

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