小编Chr*_*egg的帖子

为什么将括号括在逗号分隔值列表周围会改变赋值?

请考虑以下代码,

    int i;

    i = 1,2,3,4,5;
    printf("First time i = %d\n",i);

    i = (1,2,3,4,5);
    printf("Second time i = %d\n",i);   
Run Code Online (Sandbox Code Playgroud)

输出:

第一次i = 1

第二次i = 5


为什么括号使逗号运算符取最后一个值而没有括号它取第一个值?

提前致谢.

c c++ syntax

18
推荐指数
4
解决办法
2324
查看次数

是否可以在应用程序之间共享Cuda上下文?

我想在两个独立的Linux进程之间传递Cuda上下文(使用我已经设置的POSIX消息队列)。

使用cuCtxPopCurrent()cuCtxPushCurrent(),我可以获得上下文指针,但是在我调用该函数的进程的内存中引用了该指针,并且在进程之间传递它是没有意义的。

我正在寻找其他解决方案。到目前为止,我的想法是:

  1. 尝试深层复制该CUcontext结构,然后再传递副本。
  2. 看看我是否能找到一个共享内存解决方案,其中所有的Cuda指针都放在那里,以便两个进程都可以访问它们。
  3. 将流程合并到一个程序中。
  4. 我可能会切换到Cuda 4.0中更好的上下文共享。

我不确定选项(1)是否可行,也不确定(2)是否可用。(3)如果我想使事物通用(这是在劫持垫片中),则不是真正的选择。(4)我将看一下Cuda 4.0,但我不确定它是否也可以在那儿工作。

谢谢!

linux cuda gpu interprocess

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

将NULL作为对象返回时没有收到任何警告

我不明白为什么我没有收到警告(用g ++或clang ++)来返回NULL作为newtstr()下面的对象:

#include<iostream>
using namespace std;

string newstr();

int main()
{
        string s = newstr();
        cout << s << endl;
        return 0;
}

string newstr()
{
        return NULL;
}
Run Code Online (Sandbox Code Playgroud)

.

$ g++ -Wall -Wextra -pedantic testptr.cpp
$
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个运行时错误:

$ ./a.out
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid
Aborted
$
Run Code Online (Sandbox Code Playgroud)

.

$ g++ --version
g++ (GCC) 4.8.0
Run Code Online (Sandbox Code Playgroud)

c++ warnings g++ compiler-warnings clang++

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

试图在计划中理解"让"

我正在尝试扩展一个简单的斐波那契函数,我需要多次使用每个项的值.所以,我想我会let用来保持价值观.但是,我没有得到我认为我应该从功能中得到的东西.

这是原始fib功能:

(define (fib n)
  (if (< n 2)
      n
      (+ (fib (- n 1)) (fib (- n 2)))))
Run Code Online (Sandbox Code Playgroud)

这是我尝试做同样的事情,但是let:

(define (fib-with-let n)
  (if (< n 2)
      0
      (let ((f1 (fib-with-let (- n 1)))
            (f2 (fib-with-let (- n 2))))
        (+ f1 f2))))
Run Code Online (Sandbox Code Playgroud)

结果:

> (fib 10)
55
> (fib-with-let 10)
0
Run Code Online (Sandbox Code Playgroud)

谢谢!

recursion scheme fibonacci let

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

存储在NSUserDefaults中的NSMutableArray不会保存数据

当用户通过我的iPhone应用程序登录时,我在NSUserDefaults中创建了一堆默认元素.其中一个是NSMutableArray,我添加了以下方式:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSMutableArray *theArray = [NSMutableArray array];
[prefs setObject:theArray forKey:@"theArray"];
Run Code Online (Sandbox Code Playgroud)

这完美无瑕.但是,当我想插入或检索值时theArray,出现问题.这是我的应用程序中另一个文件的摘录:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[[prefs objectForKey:@"theArray"] setValue:@"This is a value" forKey:@"aValue"];
NSLog(@"%@", [[prefs objectForKey:@"theArray"] valueForKey:@"aValue"]);
Run Code Online (Sandbox Code Playgroud)

我希望在代码运行时在控制台中看到"这是一个值",但我得到了这个:

2011-08-08 18:35:17.503 MyApp[7993:10d03] (
)
Run Code Online (Sandbox Code Playgroud)

为什么数组是空的?我使用NSArray尝试了同样的结果.

cocoa nsuserdefaults nsmutablearray ios

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

Swift 2到Swift 3:无法将类型'(Data?,NSError?) - > Void'的值转换为预期的参数类型'GTMSessionFetcherCompletionHandler?'

我刚刚更新了一个正在运行的Swift 2到Swift 3程序,我收到了错误,

无法将'(Data?,NSError?) - > Void'类型的值转换为预期的参数类型'GTMSessionFetcherCompletionHandler?'

以下是相关细节(我希望):

let fetcher = GTMSessionFetcher(urlString:url)
fetcher.authorizer = parentController.service.authorizer
fetcher.beginFetch(completionHandler: handleDownload(studentNum))
                                      ^^^^ causing the error
Run Code Online (Sandbox Code Playgroud)

completionHandler的函数:

func handleDownload(_ studentNum:Int) -> (Data?, NSError?) -> Void {
    return { (data: Data?, error: NSError?) -> Void in
        // code for function
    }
}
Run Code Online (Sandbox Code Playgroud)

GTMSessionFetcherCompletionHandler 在Objective-C头文件中定义,如下所示:

#define GTM_NULLABLE_TYPE __nullable
typedef void (^GTMSessionFetcherCompletionHandler)(NSData * GTM_NULLABLE_TYPE data,
                                               NSError * GTM_NULLABLE_TYPE error);
Run Code Online (Sandbox Code Playgroud)

我尝试将handleDownload()更改为以下内容:

func handleDownload(_ studentNum:Int) -> (GTMSessionFetcherCompletionHandler?) {
    return { (data: Data?, error: NSError?) -> Void in
       // code for …
Run Code Online (Sandbox Code Playgroud)

handler swift swift3

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