小编Bri*_*ian的帖子

Malloc是C中的三维数组?

我正在将一些MATLAB代码翻译成C,我正在转换的脚本大量使用具有10*100*300复杂条目的3D数组.数组的大小也取决于传感器的输入,理想情况下应该动态分配数组.到目前为止,我已经尝试了两种方法,第一种方法是平面1D阵列

value = array[x + (y*xSize) + (z*ySize*xSize)]
Run Code Online (Sandbox Code Playgroud)

哪会伤害我的大脑使用.我还尝试了一个指针数组的数组

int main () {
  int ***array = malloc(3*sizeof(int**));
  int i, j;

  for (i = 0; i < 3; i++) {
    *array[i] = malloc(3*sizeof(int*));
    for (j = 0; j < 3; j++) {
      array[i][j] = malloc(3*sizeof(int));
    }
  }

  array[1][2][1] = 10;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试分配数据时,会出现seg错误.

在一个完美的世界中,我想使用第二种方法和数组符号来实现更清晰,更简单的编程.有没有更好的方法在C中动态分配三维数组?

c arrays multidimensional-array

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

移动构造函数和`std :: array`

根据N3485§23.3.2.2:

(...)数组的隐式移动构造函数和移动赋值运算符要求T 分别为MoveConstructibleMoveAssignable.

因此,std::array如果元素的类型支持,则支持移动语义.大!

但是,这究竟意味着什么?我倾向于将这种类型描述为提供符合STL标准的接口的更安全的数组版本,但是,如果这是真的,那么std::array移动构造它的元素怎么样?我可以用普通数组做同样的事情吗?

c++ move-semantics c++11

23
推荐指数
3
解决办法
6643
查看次数

strncmp的这种用法是否包含读取的界限?

Fortify表示这是一个超出范围的读取:

if (strncmp("test string", "less than 32 char", 32) == 0)
{
...
}
Run Code Online (Sandbox Code Playgroud)

它说该函数从边界外读取数据less than 32 char.

如果strncmp超过32个字符并且第二个字符串少于32个字符,真的有一个发现吗?

c strncmp fortify

13
推荐指数
3
解决办法
870
查看次数

用括号解析负数

如何在java中将字符串"(123,456)"转换为-123456(负数)?

例如:

(123,456)= - 123456

123,456 = 123456

我使用了NumberFormat类但它只转换正数,而不是使用负数.

NumberFormat numberFormat = NumberFormat.getInstance();
try {
       System.out.println(" number formatted to " + numberFormat.parse("123,456"));
       System.out.println(" number formatted to " + numberFormat.parse("(123,456)"));
    } catch (ParseException e) {
           System.out.println("I couldn't parse your string!");
    }
Run Code Online (Sandbox Code Playgroud)

输出:

数字格式为123456

我无法解析你的字符串!

java parsing

7
推荐指数
3
解决办法
5044
查看次数

如何使用jQuery获取附件文件内容

get我的响应上content-disposition: attachment;filename=f.csv,我需要在页面上下载此文件的内容.
$.ajax请求我有一个错误.如何使用jQuery ajax(或get)获取文件内容?
UPD

error: function( jqXHR, textStatus, errorThrown ) {
  console.log( jqXHR, textStatus, errorThrown );
}  
Run Code Online (Sandbox Code Playgroud)

得到

Object {
    ...
    readyState 0
    responseText ""
    status 0
    statusText "error"
}, error,  
Run Code Online (Sandbox Code Playgroud)

UPD 2
我找到了一个jquery.fileDownload插件,但它显示了带有保存打开对话框的浏览器窗口,如下所示: 保存/打开对话框
但我需要获取文件内容.
我不需要在电脑上下载文件.

UPD 3
完整代码列表:

$.ajax( {
    url: link,
    crossDomain: true,
    dataType: "text",
    success: function( data, textStatus, jqXHR ) {
        alert( data );
    },
    error: function( …
Run Code Online (Sandbox Code Playgroud)

ajax jquery file

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

参数值与预期类型不匹配

我有一个列表中的枚举(例如)

enum State
{
   UP,
   DOWN,
   RETRY
};
Run Code Online (Sandbox Code Playgroud)

我的数据库中的列是enum类型.当我尝试通过在查询中设置参数来执行Hibernate查询时setParameter("keyword", State.RETRY);,我收到错误

参数值[RETRY]与预期类型[package.name.State(n/a)]不匹配

在我的域的Glassfish 4.1 server.log中.我正在使用Hibernate 4.3.6.

在寻找对Hibernate的源代码,我看到发生了错误,因为线958-960org.hibernate.jpa.spi.BaseQueryImpl:

private static boolean isValidBindValue(Class expectedType, Object value, TemporalType temporalType) {
        if ( expectedType.isInstance( value ) ) {
            return true;
        }
...
return false;
}
Run Code Online (Sandbox Code Playgroud)

isValidBindValue 返回false,因此我收到消息.

由于这一行,它打印出String相应的enum值:

String.format("Parameter value [%s] did not match expected type [%s (%s)]",
               bind,
               parameterType.getName(),
               extractName( temporalType )
             )
Run Code Online (Sandbox Code Playgroud)

bind目的是通过调用隐式转换为字符串值toString的方法Object,它表示enum State.RETRY.

那我怎么能说服Hibernate这 …

java hibernate classloader glassfish-4

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

GWT:如何更改浏览器选项卡名称?

我知道要更改浏览器打开网站的选项卡的名称,我需要更改html文件中的标题标签.

但是在GWT中,情况有所不同:每个新地点使用相同的html文件,因此浏览器选项卡的名称对于所有地方都是相同的.

  1. 如何为每个地点指定名称?
  2. 上面这个想法在IE 9中不起作用.在IE 9中,我看到www.my-site.com/#my-place-name:显示的浏览器选项卡的名称而不是title标签的内容.我怎样才能让它适用于IE呢?

html java browser gwt internet-explorer

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

从现在到特定时刻的瞬间

我需要从现在到今天以特定小时获得秒数.

moment().diff(moment().hour(23), 'seconds');
Run Code Online (Sandbox Code Playgroud)

精度总是以小时为单位,我需要它在几秒钟内.

例如,如果现在是15:24.我得到28800.

momentjs

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

C++ Arguments Heap vs Stack

假设我创建了两个向量,一个在堆上,另一个在堆栈上:

Vector<int> vector1;
Vector<int>* vector2 = new Vector<int>;
Run Code Online (Sandbox Code Playgroud)

然后vector1,我转到两个函数,比如,foo1(Vector<int>)foo2(Vector<int>&).我也vector2进入了foo3(Vector<int>*).

由于我是C++的新手,我对这里的行为差异感到困惑.

  1. 我是否正确地说,因为foo1整个vector1被复制,因为foo2只有引用vector1被传递到函数中?

  2. 但是,不是vector1,在堆栈上声明,应该在其他地方(即从内部foo2)无法访问,除了它的创建范围?

  3. 还有,修改vector1里面的内容foo1,foo2会影响原始矢量吗?

  4. 并且vector1在其范围的末尾自动销毁,还是我们必须手动删除它?

c++ heap stack arguments argument-passing

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

迭代键集与迭代条目集

一位同事今天发出了一个提示,指出后一段代码更有效率,因为它不需要像前者那样在每次迭代中在地图中进行查找(#1).

#2(后者)如何更有效率?我只是不明白#1和#2是如何不同的.

**#1 snippet**:

for (String key : map.keySet())
{
   String value = map.get(key); // does lookup for every key
   // do something with value
}
Run Code Online (Sandbox Code Playgroud)

**#2 snippet**:

for (Map.Entry<String, String> entry : map.entrySet())
{
   String key = entry.getKey();
   String value = entry.getValue();
}
Run Code Online (Sandbox Code Playgroud)

java

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