小编Ste*_*end的帖子

有没有办法在C++中静态初始化动态分配的数组?

在C++中,我可以静态初始化一个数组,例如:

int a[] = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以将动态分配的数组初始化为一组立即值吗?

int *p = new int[3];
p = { 1, 2, 3 }; // syntax error
Run Code Online (Sandbox Code Playgroud)

...或者我必须手动复制这些值吗?

c++ arrays initialization c++11

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

我是否允许在MPI并行化代码中抛出异常?

这些是我在为使用MPI(在C++中)并行运行的算法设计错误处理时遇到的一些常见问题:

  • 异常是否在并行执行的代码中工作?是否定义了行为?
  • 他们是如何工作的?对于不同的实现,这有何不同?
  • 这是好的做法 - 还是应该使用退货代码?

c++ parallel-processing exception

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

虽然scanf!= EOF或scanf == 1?

Ceteris paribus(格式良好的数据,良好的缓冲实践以及什么不是),是否有理由为什么我更喜欢循环而返回scanf为1,而不是!EOF?我可能已经在某个地方读过这个,或者其他什么,但我也可能错了.其他人怎么想?

c scanf

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

C++未处理的异常

如果出现未处理的异常,C++是否提供了一种"显示"可视化内容的方法?

我想做的是做一些事情,assert(unhandled exception.msg())如果它真的发生(如下面的例子):

void foo() {
   throw std::exception("Message!");
}

int main() {
 foo();
}
Run Code Online (Sandbox Code Playgroud)

我希望这种代码不会立即终止(因为异常未处理),而是显示自定义断言消息(Message!实际上).

那可能吗?

c++ exception handler

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

如何通过SWIG到Java处理C++中的异常

我们正在实现一个C++代码包装器,以便接触Java客户端.我已经看过关于异常处理SWIG文档,但这在三层(C++/SWIG/Java)中的编码术语中有什么意义呢?

如果有人有工作实例或建议,我将不胜感激.

c++ java java-native-interface swig exception-handling

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

Interlocked类可以安全地与lock()混合使用吗?

将interlocked操作与lock()(和其他更高级别的锁)混合时,是否保证原子读取?

我喜欢混合这样的锁定机制时的一般行为,以及Int32和Int64之间的任何差异.

private Int64 count;
private object _myLock;

public Int64 Count 
{
  get 
  {
    lock(_myLock)
    {
      return count;
    }
  }
}

public void Increment
{
  Interlocked.Increment(ref count);
}
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading

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

从GetAdaptersAddresses()获取IP_ADDRESS_STRING?

GetAdaptersAddresses()将以IP_ADAPTER_UNICAST_ADDRESS格式获取地址,其格式定义为:

typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
  union {
    struct {
      ULONG Length;
      DWORD Flags;
    } ;
  } ;
  struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
  SOCKET_ADDRESS                     Address;
  IP_PREFIX_ORIGIN                   PrefixOrigin;
  IP_SUFFIX_ORIGIN                   SuffixOrigin;
  IP_DAD_STATE                       DadState;
  ULONG                              ValidLifetime;
  ULONG                              PreferredLifetime;
  ULONG                              LeaseLifetime;
  UINT8                              OnLinkPrefixLength;
} IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
Run Code Online (Sandbox Code Playgroud)

似乎建议人类可读的IP地址字符串的唯一字段是Address,它是一个SOCKET_ADDRESS结构,定义如下:

typedef struct _SOCKET_ADDRESS {
  LPSOCKADDR lpSockaddr;
  INT        iSockaddrLength;
} SOCKET_ADDRESS, *PSOCKET_ADDRESS;
Run Code Online (Sandbox Code Playgroud)

反过来,它使用另一种结构SOCKADDR,定义为:

对不起,这是复杂的方式发布在这里,因为它取决于IPv4与IPv6和Windows版本...所以这里是定义的链接:

http://msdn.microsoft.com/en-us/library/ms740496%28v=VS.85%29.aspx

如果你还没有像我那样头晕目眩并遵循这个定义的迷宫,你可能会注意到检索IP地址的旧的虚线字符串样式是一个噩梦,因为使用GetAdaptersInfo()过去更容易.

我的问题是:是否有真正的 IP Helper功能可以将IP_ADAPTER_UNICAST_ADDRESS转换为IPv4点分支(或IPv6字符串)?

c windows networking winapi

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

链接器以哪种顺序处理库目录?

编译期间,搜索路径中可能存在多个库实例.链接器处理目录以什么顺序包含在搜索路径中?有问题的平台是Sun OS.

c++ linker sunos

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

我应该使用什么类型的索引变量

这是一个最佳实践问题.我正在制作一个阵列

type * x = malloc(size*sizeof(type));
Run Code Online (Sandbox Code Playgroud)

AFAIK sizeof给出size_t的返回值.这是否意味着我应该使用size_t来声明或传递大小?另外,当索引数组时,我还应该使用size_t作为索引变量吗?这些最佳做法是什么?这不是他们在学校教的东西,而现在我正在深入了解我想知道的严肃的c ++.

此外,如果有人参考我可以找到这种东西的最佳实践,它会有帮助吗?程序员预订的礼仪.

编辑:malloc应该是cudaHostAlloc,或cudaMalloc,因为我正在开发一个同时在设备和主机上存储数组的类,并同时更新它们.所以malloc在这里只是我实际要做的事情的持有者.

c++ cuda

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

Windows中UDP的C++头文件?

我有一个linux应用程序,它通过UDP协议发送数据.它使用这些头文件:

#include <stdio.h>
/* standard C i/o facilities */
#include <stdlib.h>
/* needed for atoi() */
#include <unistd.h>

/* defines STDIN_FILENO, system calls,etc */
#include <sys/types.h> /* system data type definitions */
#include <sys/socket.h> /* socket specific definitions */
#include <netinet/in.h> /* INET constants and stuff */
#include <arpa/inet.h> /* IP address conversion stuff */
#include <netdb.h>
#include <string.h> /* for string and memset etc */
/* gethostbyname */
#include <iostream>

#include <fstream>

#include <opencv/highgui.h>
#include <opencv/cv.h>
#include <opencv/cxcore.h> 
Run Code Online (Sandbox Code Playgroud)

我想制作我的应用程序的WIndows版本.但是上面的一些头文件在WIndows中不起作用,特别是那些UDP. …

c++ sockets udp winsock visual-c++

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