小编Sam*_*Sam的帖子

为什么我需要删除[]?

让我们说我有这样的功能:

int main()
{
    char* str = new char[10];

    for(int i=0;i<5;i++)
    {
        //Do stuff with str
    }

    delete[] str;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. str如果我要结束程序,为什么还需要删除?如果我要退出,我不在乎那个记忆是否会到达满是独角兽的土地,对吧?

  2. 这只是好习惯吗?

  3. 它有更深的后果吗?

c++ memory memory-leaks memory-management delete-operator

45
推荐指数
5
解决办法
2681
查看次数

逆向工程战争故事

有时您没有源代码,需要对程序或黑盒进行反向工程.有趣的战争故事吗?

这是我的一个:

几年前我需要重写一个我没有源代码的设备驱动程序.设备驱动程序在旧的CP/M微型计算机上运行,​​并通过串行端口驱动专用的照排机.几乎没有照相排版机的文件可供我使用.

我最终在DOS PC上将一个串口监视器混合在一起,模仿了照相排版机器的响应.我将DOS PC连接到CP/M机器,并在我通过CP/M机器输入数据时开始记录来自设备驱动程序的数据.这使我能够找出设备驱动程序使用的握手和编码,并为DOS机器重新创建一个等效的.

reverse-engineering

43
推荐指数
8
解决办法
9543
查看次数

如何在C#中修改字典中的键

如何更改字典中多个键的值.

我有以下字典:

SortedDictionary<int,SortedDictionary<string,List<string>>>
Run Code Online (Sandbox Code Playgroud)

如果键值大于某个量,我想循环遍历此排序字典并将键更改为键+ 1.

.net c# dictionary key

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

插入前面的矢量

iterator insert ( iterator position, const T& x );
Run Code Online (Sandbox Code Playgroud)

std::Vector类的insert运算符的函数声明.

此函数的返回类型是指向插入元素的迭代器.我的问题是,给定这种返回类型,最有效的方法是什么(这是我正在运行的一个更大的程序的一部分,其中速度是最重要的,所以我正在寻找有效的计算方式)在开头插入.是以下吗?

//Code 1
vector<int> intvector;
vector<int>::iterator it;
it = myvector.begin();
for(int i = 1; i <= 100000; i++){
    it = intvector.insert(it,i);
}
Run Code Online (Sandbox Code Playgroud)

要么,

//Code 2
vector<int> intvector;
for(int i = 1; i <= 100000; i++){
    intvector.insert(intvector.begin(),i);
}
Run Code Online (Sandbox Code Playgroud)

基本上,在代码2中,是参数,

intvector.begin() 
Run Code Online (Sandbox Code Playgroud)

与在代码1中使用返回的迭代器相比,计算评估的"成本"还是应该同样便宜/昂贵?

c++ performance vector

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

从语句中删除别名的表变量

我想根据同一个表中其他行的存在从SQL Server 2000/2005表变量中删除行(如果存在具有相同日期的非0计数行,则删除所有0个计数行).这是一个简单的示例,应该只删除首先添加的行:

declare @O table (
    Month datetime,
    ACount int NULL
)

insert into @O values ('2009-01-01', 0)
insert into @O values ('2009-01-01', 1)
insert into @O values ('2008-01-01', 1)
insert into @O values ('2007-01-01', 0)

delete from @O o1
where ACount = 0
  and exists (select Month from @O o2 where o1.Month = o2.Month and o2.ACount > 0)
Run Code Online (Sandbox Code Playgroud)

问题是我无法让SQL服务器接受表变量的o1别名(我认为由于o1.Month = o2.Month匹配字段名称而需要别名).错误是:

Msg 102,Level 15,State 1,Line 11

'o1'附近的语法不正确.

sql sql-server alias

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

JPA认为我正在删除一个分离的对象

我有一个DAO,我曾经使用JPA加载和保存我的域对象.我终于设法使交易工作正常,现在我又遇到了另一个问题.

在我的测试用例中,我调用我的DAO来加载具有给定id的域对象,检查它是否已加载,然后调用相同的DAO来删除刚刚加载的对象.当我这样做时,我得到以下内容:

java.lang.IllegalArgumentException: Removing a detached instance mil.navy.ndms.conops.common.model.impl.jpa.Group#10
 at org.hibernate.ejb.event.EJB3DeleteEventListener.performDetachedEntityDeletionCheck(EJB3DeleteEventListener.java:45)
 at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:108)
 at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:74)
 at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:794)
 at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:772)
 at org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityManagerImpl.java:253)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:180)
 at $Proxy27.remove(Unknown Source)
 at mil.navy.ndms.conops.common.dao.impl.jpa.GroupDao.delete(GroupDao.java:499)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at $Proxy28.delete(Unknown Source)
 at mil.navy.ndms.conops.common.dao.impl.jpa.GroupDaoTest.testGroupDaoSave(GroupDaoTest.java:89)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:600)
 at junit.framework.TestCase.runTest(TestCase.java:164)
 at junit.framework.TestCase.runBare(TestCase.java:130)
 at junit.framework.TestResult$1.protect(TestResult.java:106)
 at junit.framework.TestResult.runProtected(TestResult.java:124)
 at …
Run Code Online (Sandbox Code Playgroud)

java spring entity jpa

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

从目录中删除readonly属性

如何以编程方式从C#中的目录中删除readonly属性?

.net c# directory readonly

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

我可以使用反射来检查方法中的代码吗?

我正在玩C#反射API.我可以轻松地Type在程序集中加载类,方法等信息,但是,现在我想知道如何加载和读取方法中的代码?

c# reflection

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

Ruby在调用方法之前检查是否为nil

我在Ruby中有一个字符串,我正在调用strip方法来删除前导和尾随空格.例如

s = "12345 "
s.strip
Run Code Online (Sandbox Code Playgroud)

但是,如果字符串为空,我会收到以下错误.

NoMethodError:nil的未定义方法`strip':NilClass

我正在使用Ruby 1.9,那么在调用strip方法之前,最简单的方法是检查值是否为nil?

更新:

我在数组中的元素上尝试了这个但是遇到了同样的问题:

data[2][1][6].nil? ? data[2][1][6] : data[2][1][6].split(":")[1].strip
Run Code Online (Sandbox Code Playgroud)

ruby null

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

paypal express checkout =>错误:安全标头无效

错误:安全标头无效数组

(
    [TIMESTAMP] => 2014%2d04%2d29T07%3a24%3a29Z
    [CORRELATIONID] => 6af6749c848d6
    [ACK] => Failure
    [VERSION] => 109%2e0
    [BUILD] => 10800277
    [L_ERRORCODE0] => 10002
    [L_SHORTMESSAGE0] => Security%20error
    [L_LONGMESSAGE0] => Security%20header%20is%20not%20valid
    [L_SEVERITYCODE0] => Error
)
Run Code Online (Sandbox Code Playgroud)

我一次又一次地得到这个错误,无法继续前进.我已经检查了所有的api用户名,密码和签名,一切都是正确的,但主要的问题是,所有的东西都已存储在paypal沙盒帐户中,但它无法返回页面.我的意思是说横切显示在沙盒帐户中,但它不能发送到显示页面.我错了吗?

paypal out express

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