小编a3d*_*fcv的帖子

c ++ new/delete和char*

任何人都可以帮助我,为什么我在尝试释放分配的内存时收到错误消息:检测到堆损坏.CTR检测到应用程序在堆缓冲区结束后写入内存.

char *ff (char *s){
    char *s1 = new char [strlen(s)];
    strcpy(s1, s);
    return s1;
}

int _tmain(int argc, _TCHAR* argv[])
{
    char *s = new char [5];

    strcpy(s, "hello");
    char *s2 = ff(s);

    delete []s;     // This works normal
    delete []s2;    // But I get an error on that line
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ char new-operator

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

在 Optional 中使用 assertJ 断言值

我有两个班级:

class Outer {
    Inner inner = new Inner("value");
}

class Inner {
   private final String value;
   
   Inner(String value) {
      this.value = value;
   }
}

public Optional<Outer> getOptionalValue() {
   return Optional.of(new Outer());
} 

Run Code Online (Sandbox Code Playgroud)

我的测试:

public void testCLass() {
   Assertions.assertThat(getOptionalValue())
      .isPresent()
      .map(v -> v.inner.value)
      .isEqualTo("value");
}
   
Run Code Online (Sandbox Code Playgroud)

我希望它通过,因为isPresentunwraps 可选,map转换Outervalue最后一种方法,我只是比较字符串。

但它在最后一行失败并显示以下消息:

Expecting:
 <Optional[value]>
to be equal to:
 <"value">
but was not.
Run Code Online (Sandbox Code Playgroud)

我不知道为什么不展开可选

java optional assertj

9
推荐指数
2
解决办法
4576
查看次数

matlab和数组

我有这样的代码:

t = a:(b-a)/10:b;
y = myFunction(t);
Run Code Online (Sandbox Code Playgroud)

据我猜,这段代码通过应用to的每个值创建一个数组t和另一个数组.ytmyFunction

然而,如果我手动传递数组的第一个元素t,以myFunction喜欢这个

y = myFunction(t);
Run Code Online (Sandbox Code Playgroud)

我不会得到y不同数字的第一个元素.为什么?

PS
myFunction看起来像这样:

function res = myFunction(x)
    res = tanh(5*x.^2 + 3*x - 2) + exp((x.^3 + 6*x.^2 + 12*x + 8)/(2*x.^2 + 8*x + 7))-2.0;
end
Run Code Online (Sandbox Code Playgroud)

matlab

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

SAD和SSD之间的区别

谁能告诉我,SAD和SDD有什么区别?我在谈论绝对差异的总和和平方差异的总和.

只是在SSD中你得到方块的差异度量?我可以只使用度量的绝对值,而不是提高到第二个幂.

什么是广场有用?

math image-processing motion-detection

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

按线性时间排序

我需要编写一个对大小为[0..N-1]的数组进行排序的算法,该算法填充了范围[0..N-1]的值.数组中的值不能重复.排序应该在线性时间内工作,我只允许使用一些额外的变量.

请写我写的代码.据我猜,最糟糕的时间是2*N. 还是一个线性时间吗?是否有可能使速度更快?

public int sort(){
    int i  = 0;             
    while (i < n){
        if (a[i] != i)      
            switchElements(a[i], a[a[i]]);                  
        else
            i++;                    
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

额外的1 我真的需要对数组进行排序,因为排序只是任务的一部分.完整的任务是找到数组中的重复值,线性时间,没有其他变量.

sorting algorithm

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

在C字符串中查找错误

今天我有一个inverview,并被要求编写两个字符串连接的功能.但是在我结束之后,我听说,通常代码没问题,但我在那里做了一点错误.在家检查,但一切正常.有什么问题?

char * strconcat (char *S1, char *S2){
    char *S3 = new char [strlen(S1) + strlen(S2) +1];
    strcpy(S3, S1);
    strcat(S3, S2);
    return S3;   
} 
Run Code Online (Sandbox Code Playgroud)

c++ string

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

java中的相等和条件运算符的优先级

我运行以下代码片段

System.out.println(T1() ? F1() : T2() == T3() ? F2() : T4());
public static boolean T1() { System.out.println("true1"); return true; }
public static boolean T2() { System.out.println("true2"); return true; }
public static boolean T3() { System.out.println("true3"); return true; }
public static boolean T4() { System.out.println("true4"); return true; }
public static boolean F1() { System.out.println("false1"); return false; }
public static boolean F2() { System.out.println("false2"); return false; }
Run Code Online (Sandbox Code Playgroud)

我得到了输出

true1
false1
false
Run Code Online (Sandbox Code Playgroud)

评估等式运算符之前,已对第一个三元运算符进行了求值,但根据oracle文档,等式运算符的优先级高于三元运算符,因此必须在三元运算符之前对等式运算符求值.

这样的代码行为的原因是什么?

java operators

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

在哪里存储用户数据?

我正在开发一个Android应用程序,并且当同一用户将我的应用程序安装在另一部手机上时,我想恢复用户设置。

我不想使用Dropbox或Google驱动器,因为并非所有用户都在这些云中拥有帐户。我想使用所有Android用户都拥有的东西。有一些云链接到Google帐户吗?但是我找不到。

应该有很常见的解决方案,但我还没有找到任何有关它的信息。

android shared-data

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

Mono.fromCallable 与 Mono.fromSupplier

我试图理解这两种方法之间的区别,但它们对我来说似乎很相似。甚至 javadoc 也几乎相同

java rx-java reactive

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

矩阵作为数组的数组

我有一个函数来检查数组中是否有重复数据;这看起来像下图所示。任务是使用该函数查找矩阵中没有重复数据的列。问题是如何将矩阵的列传递给该函数。

PS 我正在使用 Pascal/Delphi

type
  myArray = array [1..10] of integer;

function noRepeat(A: myArray; n: integer): Boolean;
var
  i: integer;
begin
  Result := true;
  for i:=1 to n do
    for j := i + 1 to n do
      if  (A[i] = A[j]) then
        Result := true;
end; 
Run Code Online (Sandbox Code Playgroud)

arrays delphi pascal function matrix

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

Spin 和 Promela:从不和循环

我正在使用如下代码在验证模式下运行旋转。名为“从不”的函数出现问题。在执行时,它给了我一个错误,函数 inc()、dec() 和 reset() 从未完成。但是如果我添加一个循环,效果很好。根据文档,“从不”检查每一步的变量。那么,为什么它在没有循环的情况下不起作用?

int x=0
proctype Inc(){
 do
  ::true ->
    if
      ::x<10->x=x+1
    fi
 od
}

proctype Dec(){
 do
  ::true ->
    if
      ::x>0->x=x-1
    fi
 od
}

proctype Reset(){
 do
  ::true ->
   if
    ::x==10->x=0
   fi
 od
}


never {       // if I need this to work, i have to add
  To_Init:    //  this line
    if 
      :: (x<0) || (10<x) -> goto accept
      :: else -> goto To_Init      //  and that line
    fi;
  accept:
}

init{
  run Inc();
  run Dec();
  run …
Run Code Online (Sandbox Code Playgroud)

spin

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

覆盖派生类中的基类方法

我有一个基类A,有一个方法"说"从A的构造函数调用.所有可遗漏的类使用方法"说"就像它.但其中一个类需要重新定义这种方法.这怎么可能?

当然,我可以将基本方法"说"视为抽象,但是这样,我必须在所有可遗漏的类中复制相同的方法"说".

如果我只是重新定义方法而不将基数表示为抽象,那么它就不会被调用.

public abstract class A(){
     public A(){
        say();  //  <- wanna call this method from heritable class, if its redefined. 
     }
     protected void say(){};
}

public class B extends A(){
     public B(){
        super();
     }
     private void say(){};
}
Run Code Online (Sandbox Code Playgroud)

重构1

public abstract class A(){
     public A(){
       //  constructor methods             
     }
     protected void say(){};
     protected void executeSay(){
       say();
     }
}

public class B extends A(){
     public B(){
        super();
        executeSay();
     }
     @Override
     protected void say(){};
}
Run Code Online (Sandbox Code Playgroud)

java inheritance

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

用Java重新创建扫描仪

我正在用Java编写游戏,并且有一种方法要求用户从Console中输入值:

public String getUserInput() {
    try (Scanner scan = new Scanner(System.in)) {
        String s = scan.nextLine();
        return s;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我想多次调用此方法,具体取决于外部参数,但我事先不知道,是否会再次调用。

但是当我在第二次调用中调用这样的方法时,我得到了

Exception in thread "main" java.util.NoSuchElementException: No line found
Run Code Online (Sandbox Code Playgroud)

问题:

  • 我不明白此错误的根本原因:我知道我无法重新打开扫描仪,但是在这里我不重新打开它,而是重新创建它。
  • 我该如何处理?

java console

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