小编Fra*_*ert的帖子

exit()的副作用没有退出?

如果我的应用程序内存不足,我想用更改的参数重新运行它.我有malloc/ new在应用程序的各个部分,其大小事先不知道.我看到两个选择:

  • 跟踪所有内存分配并编写重新启动过程,在重新运行更改的参数之前释放所有内容.(当然,如果没有错误,我会在适当的地方释放内存)
  • 重新启动应用程序(例如,WinExec()在Windows上)并退出

我对这两种解决方案都不感到激动.我是否想念一个替代品呢?

谢谢

c c++

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

table1 UNION ALL table2是否保证输出顺序table1,table2?

SELECT a FROM b
UNION ALL 
SELECT a FROM c
UNION ALL 
SELECT a FROM d
Run Code Online (Sandbox Code Playgroud)

UNION ALL是否保证按顺序打印表b,c,d中的记录?即,在b之前没有来自c的记录.这个问题不适用于特定的DBMS.

sql database union sql-order-by union-all

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

如何避免编写同一循环的多个版本

在一个大循环中,我目前有一个类似的声明

if (ptr == NULL || ptr->calculate() > 5) 
  {do something} 
Run Code Online (Sandbox Code Playgroud)

其中ptr是在循环之前设置的对象指针,从不更改.

我想避免在循环的每次迭代中将ptr与NULL进行比较.(当前的最终程序就是这样做的,对吗?)一个简单的解决方案是为(ptr == NULL)编写一次循环代码,为(ptr!= NULL)编写一次.但这会增加代码量,使维护更加困难,而且如果相同的大循环出现两次只有一行或两行更改,则看起来很傻.

我能做什么?使用动态值常量可能并希望编译器是智能的?怎么样?

非常感谢!

由Luther Blissett 编辑.OP想要知道是否有更好的方法来删除指针检查:

loop {
 A; 
 if (ptr==0 || ptr->calculate()>5) B;
 C;
}
Run Code Online (Sandbox Code Playgroud)

比复制循环,如下所示:

if (ptr==0) 
loop {
 A; 
 B;
 C;
} 
else loop {
 A;
 if (ptr->calculate()>5) B;
 C;
}
Run Code Online (Sandbox Code Playgroud)

c c++

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

128千字节或128千字节?128 kBs还是128 kB?

我知道这是128欧元和128个苹果.

我认为它是128千字节,兆字节,千兆字节.或者它是128千字节,兆字节,千兆字节?

如果复数是正确的,我应该使用128 kBs,MBs,GBs.这看起来很陌生.

哪个是正确的,复数还是单数?

谢谢 :)

grammar wording

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

标签 统计

c ×2

c++ ×2

database ×1

grammar ×1

sql ×1

sql-order-by ×1

union ×1

union-all ×1

wording ×1