注意:我不太擅长使用shell.
我试图在Yosemite 上安装Valgrind使用brew.
brew install --HEAD valgrind
接近尾声时,我遇到了与链接有关的错误,所以当我尝试重新安装时,我得到了:
警告:valgrind-HEAD已经安装,它只是没有链接
显然我已经安装了它.然后基于其他SO问题和答案,我试过:
brew link valgrind
这似乎解决了其他人链接已安装的软件的问题,但这给了我一个错误:
Linking /usr/local/Cellar/valgrind/HEAD...
Error: Could not symlink lib/pkgconfig/valgrind.pc
/usr/local/lib/pkgconfig is not writable.
Run Code Online (Sandbox Code Playgroud)
我也试图更新,brew但它没有解决问题.如果它不可写,也许sudo会给我许可,但我不想在sudo不知道我在做什么的情况下使用.
发生了什么以及如何解决它?
我理解try并且catch()用于异常处理,以防在某些情况下程序中发生错误或崩溃.我也明白他们是如何工作的.但是,为什么使用try和catch()?为什么不只使用一个if()查找某个案例的语句,如果这种情况属实,那么它cout << //error code呢?
我一直在学习Haskell,我注意到许多内置函数接受的命令计数器中的参数直观地符合我的预期.例如:
replicate :: Int -> a -> [a]
Run Code Online (Sandbox Code Playgroud)
如果我想复制7次,我会写replicate 2 7.但是当用英语大声朗读时,函数调用就像是在说"复制2,7次".如果我自己编写了这个函数,我会交换第一个和第二个参数,这样就replicate 7 2可以读取"复制7次,2次".
当我遇到99个Haskell问题时,出现了一些其他的例子.我不得不写一个函数:
dropEvery :: [a] -> Int -> [a]`
Run Code Online (Sandbox Code Playgroud)
它将列表作为第一个参数,将Int第二个参数作为第二个参数.直觉上,我会写的标题为dropEvery :: Int -> [a] -> [a],这样dropEvery 3 [1..100]会为已读:"列表中的每滴第三个元素[1..100],但在问题的例子,它会是什么样子.: dropEvery [1..100] 3.
我也看到过这个我现在找不到的其他功能.由于实际原因以这种方式编写函数是否常见,或者这一切都在我脑海中?
我有一个程序C.它成功地编译和运行工作正常,但就在年底main(),它崩溃并给了我一个Abort trap: 6错误。
我对如何调试它一无所知。关于 SO 与Abort trap: 6错误有关的几个问题对我没有多大帮助。
一般来说,可能是什么问题?
(我现在不愿意发布我的源代码,因为它大约有 400 行代码。如果我知道要查找什么,我会发布一段特定的代码。)
注意:我在终端中使用GCC. 但是当我在 XCode 中运行它时,我的程序崩溃了,如果我停止它,它会以exit code: 9.
这是来自的输出lldb:
Process 1191 stopped
* thread #1: tid = 0xa759, 0x00007fff8fa08286 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00007fff8fa08286 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill + 10:
-> 0x7fff8fa08286: jae 0x7fff8fa08290 ; __pthread_kill + 20
0x7fff8fa08288: movq %rax, %rdi
0x7fff8fa0828b: jmp 0x7fff8fa03c53 ; cerror_nocancel
0x7fff8fa08290: retq
Run Code Online (Sandbox Code Playgroud) 我知道当你想要改变原始变量的值时,你会通过引用C++中的函数来传递.但是当你希望程序更有效时你也可以通过引用传递,如果你不想改变传递给函数的变量中的任何东西,你只需要使它成为const.我的问题是,为什么不总是让你的函数接受const引用传递的变量,如果它比传递变量更高效并让编译器在函数范围内创建一个新变量?为了扩展这个问题,一个函数WOULD需要复制一个变量而不是通过参数?
假设我从一个场景开始initialScene.此场景包含几个按钮.当用户点击此场景中的按钮A时,我将呈现sceneA.所以我的代码看起来像这样:
sceneA* scene = [[sceneA alloc] init];
[self.scene.view presentScene: scene];
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是,当一个实例sceneA出现时initialScene,它是堆叠在initialScene实例之上还是替换它?initialScene当呈现新场景时,是否在内存中释放了get 实例?
我问这个是因为sceneA会有一个Back Button,当点击时,会将用户返回到初始场景.我可以initialScene在内部创建一个新实例sceneA并将其呈现,还是会导致相同场景的多个实例堆叠在一起?基本上,我可以这样做sceneA吗?:
if(...) { //if user taps back button
initialScene* iniScene = [[initialScene alloc] init];
[self.scene.view presentScene: iniScene];
}
Run Code Online (Sandbox Code Playgroud)
或者有更好的方法吗?如果有任何方法我可以进一步澄清,请告诉我.
我刚下载并安装了Qt Creator.我没有搞乱PATH或任何其他设置.但是当我尝试运行Qt GUI Application项目时,它会出现以下错误:
cc1plus.exe:-1: error: error: unrecognized command line option "-fno-keep-inline-dllexport"
Run Code Online (Sandbox Code Playgroud)
输出说:
构建/部署项目ProjectFirst时出错(工具包:Desktop Qt 5.0.1 MinGW 32bit)执行步骤'Make'时
我不明白为什么会这样.在询问之前,我在网上查了很多,但找不到任何东西.
我的情况是,我有一个GameMenuScene用户选择一个级别后,我想呈现LevelScene.但我不希望有以前GameMenuScene被丢弃,因为LevelScene实际上是一个@property的GameMenuScene,以及是否在用户完成水平将被保存为@property的LevelScene,其GameMenuScene应当能够在用户完成后进入或退出的水平.如果我只是使用presentScene:transition,GameMenuScene则丢弃并且信息无法传回.
我的问题:有没有办法将场景叠加或推到彼此之上而不丢弃之前的场景(最好是使用过渡动画)?我在找不到SKScene的Apple文档中找不到这种特定用途的方法.
注意:另一个StackOverflow对类似问题的回答建议创建一个新的UIViewController,出现LevelScene在那里然后呈现UIViewController模态.但是我希望在Apple文档中有一个现有的方法,我错过了以模态方式呈现场景本身而无需创建UIVIewControllers.
我正在尝试计算字符串中字符的出现次数.我的代码如下:
data segment 'DSEG'
text db "This is a sentence.",0 ; string
textSize dw $ - text - 1 ; size of string, - 1 to account for null-termination character
freqTable dd 256 DUP(0)
ends 'DSEG'
code segment 'CSEG'
start:
mov ax, data ; set segment registers
mov ds, ax
mov es, ax
;---------------------------------------
sub cx, cx
mov cx, textSize ; number of times to loop
L1:
mov ax, [OFFSET text + cx - 1] ; loop from back using …Run Code Online (Sandbox Code Playgroud) 我学习用C动态内存分配++和关键字new和new[]被提及.据说,用户可以在运行时指定内存分配的大小,而不像在源代码中声明一个具有固定大小的变量或数组.
我不明白这个概念.它是如何工作的?我只需要澄清这个想法,一个例子会有所帮助!
c++ malloc memory-management new-operator dynamic-allocation
我需要帮助在C++中使用windows.h头文件.我看到人们在他们的程序中使用windows.h(显然)与windows交互,但我不知道如何使用它.具体来说,是否有一个网站列出并描述了windows.h头文件中的方法和功能.我尝试打开windows.g头文件,看看自己的方法,但我只看到一堆其他的#includes,不知道接下来该做什么.我是C++的新手,所以如果我的问题不是很好,我会道歉!
我试图做的:
template <class T>
ostream& operator<<(ostream& ou, map<T,T> x) {
for(typename map<T,T>::iterator it = x.begin(); it != x.end(); it++) {
ou << it->first << ": " << it->second << endl;
}
return ou;
}
Run Code Online (Sandbox Code Playgroud)
我在主要测试它:
int main() {
map<char, int> m;
m['a']++;
m['b']++;
m['c']++;
m['d']++;
cout << m << endl;
}
Run Code Online (Sandbox Code Playgroud)
然后我得到了错误:
'错误:'std :: cout << m'中'operator <<'不匹配
如果我将函数参数更改为map<T,T>to,则重载的运算符将起作用map<char,int>.我的代码中是否存在小问题,或者有完全不同的方法吗?一般来说,如何使用模板类重载容器类型的运算符?
drawRect:(CGRect)rect在制作简单的iOS应用程序时,我重写了该方法.在我正在阅读的书中,界限的定义self.bounds如下所示:
- (void)drawRect:(CGRect)rect
{
CGRect bounds = self.bounds;
//rest of drawing code here
}
Run Code Online (Sandbox Code Playgroud)
我注意到在书中,该方法的其余部分甚至没有使用该rect参数并且工作正常.我假设rect会在视图中设置边界,所以我尝试了以下内容:
- (void)drawRect:(CGRect)rect
{
CGRect bounds = rect;
//rest of drawing code here
}
Run Code Online (Sandbox Code Playgroud)
(显然,我甚至不需要bounds等同于rect因为我可以rect在方法中直接引用.)我尝试了两种方式并且它们产生了相同的结果.那么,self.bounds和rect平等的吗?如果是,我假设rect用于在幕后某处设置当前视图的边界.但如果它们不是,那么rect作为一个甚至不使用它的方法的参数有什么用呢?我忽略了一些明显的东西吗