为什么将char **作为const char **传递会产生警告?

我一直在收到这个警告: note: expected ‘const char **’ but argument is of type ‘char **’ 现在,我通过将它们转换为const char **来传递参数。 还有其他方法我可以摆脱它吗?

null终止字符串

gcc 4.4.4 c89 null终止字符串的标准方法是什么? 当我使用NULL我收到一条警告消息。 *dest++ = 0; *dest++ = ‘\0’; *dest++ = NULL; /* Warning: Assignment takes integer from pointer without a cast */ 源代码: size_t s_strscpy(char *dest, const char *src, const size_t len) { /* Copy the contents from src to dest */ size_t i = 0; for(i = 0; i < len; […]

使用CUDA减少矩阵行

Windows 7, NVidia GeForce 425M. 我写了一个简单的CUDA代码来计算矩阵的行和。 矩阵具有单维表示(指向浮点的指针)。 代码的串行版本如下(它有2循环,如预期的那样): void serial_rowSum (float* m, float* output, int nrow, int ncol) { float sum; for (int i = 0 ; i < nrow ; i++) { sum = 0; for (int j = 0 ; j < ncol ; j++) sum += m[i*ncol+j]; output[i] = sum; } } […]

c popen不会抓住stderr

我正在尝试使用popen()来捕获调用的stderr,但当然它似乎并没有这样做。 有任何想法吗? 我的代码看起来或多或少像这样: popen(“nedit”, “r”); 但是我在屏幕上得到了关于非utf8的所有垃圾……

如何以编程方式在OpenSSL中加载PKCS#12文件?

在基于OpenSSL的SSL服务器应用程序中,我们如何以编程方式加载PKCS#12文件? 另外,我可以在OpenSSL的同一文件中加载具有证书,密钥和CA的PKCS#12文件吗?

为什么在签名的二进制补码表示中-INT_MIN = INT_MIN?

我还没有找到最低签名负数没有等效签名正数的原因? 我的意思是在3位二进制数字中为简单起见100是-4? 但是我们不能以签名格式获得积极的4,因为我们不能。 它溢出了。 那么我们怎么知道两个补码1000是-4 1000 0000是-128等等? 我们没有原始正数

使用C调整数组大小

我需要在我正在制作的游戏中拥有一系列结构 – 但我不想将数组限制为固定大小。 我被告知有一种方法可以在需要时使用realloc使数组更大,但找不到任何有用的例子。 有人可以告诉我该怎么做吗?

使用#define定义数字的平方

我只是经历了一些在访谈中经常被问到的代码。 我提出了一些问题,如果有人可以帮我解决这个问题? 我现在对此感到困惑, #include #include #define square(x) x*x main() { int i, j; i = 4/square(4); j = 64/square(4); printf(“\n %d”, i); printf(“\n %d”, j); printf(“\n %d”, square(4)); getch(); } 输出是: 4 64 16 我想知道,为什么当我分割时, square(4)返回1? 我的意思是,当我分割时,如何获得值4和64 ,但是当直接使用时我得到16 !!

C中的结构内存布局

我有一个C#背景。 我非常喜欢像C这样的低级语言。 在C#中, struct的内存由编译器默认布局。 编译器可以隐式地重新排序数据字段或填充字段之间的附加位。 因此,我必须指定一些特殊属性来覆盖此行为以获得精确布局。 AFAIK,C默认情况下不重新排序或对齐struct的内存布局。 但是,我听说有一个很难找到的例外。 什么是C的内存布局行为? 什么应该重新排序/对齐而不是?

如何在内存中缓冲stdout并从专用线程写入

我有一个包含许多工作线程的C应用程序。 至关重要的是这些不会阻塞工作线程需要写入磁盘上的文件,我让它们写入内存中的循环缓冲区,然后有一个专用线程将该缓冲区写入磁盘。 工作线程不再阻塞。 专用线程可以在写入磁盘时安全地阻塞,而不会影响工作线程(写入磁盘时它不会保持锁定)。 我的内存缓冲区调整得足够大,以至于编写器线程可以跟上。 一切都很好。 我的问题是,我如何为stdout实现类似的东西? 我可以将macro printf()写入内存缓冲区,但是我无法控制可能写入stdout的所有代码(其中一些代码在第三方库中)。 思考? NickB