小编fuz*_*zzy的帖子

是否定义了此代码实现?

#include<stdio.h>

int main (void)
{
  int i=257;
  int *ptr=&i;

  printf("%d%d",*((char*)ptr),*((char*)ptr+1));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码实现的输出是否会定义,输出会在little endian和big endian机器之间变化?

c pointers

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

没有逗号的数组初始化

在下面的代码我输出像(最后一个给出分段错误)

 U   
 s    
 HelloThisisatest    
 Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么.代码是

int main()
{
   char *a[]={"Hello" "This" "is" "a" "test"};
   printf("%c\n",a[1][0]);
   printf("%c\n",a[0][8]);
   printf("%s\n",a[0]);
   printf("%s\n",a[3]);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

另一个问题是我们可以在不使用逗号的情况下初始化二维数组吗?当我用\ns 替换\ts然后输出变化时,我得到的另一种情况

"你的HelloThisisatest(null)"

为什么?

c string pointers cstring

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

矩阵乘法与 mpi

我是并行编程的新手。我正在尝试将两个矩阵相乘。我已将问题划分如下:

让操作为 mat3 = mat1 x mat2 我正在将 mat2 广播给通信器中的所有进程,并切出 mat1 的行条并将它们分散到通信器组中的进程。在所有进程拥有整个 mat2 和 mat1 的相应条带后,他们将条带与 mat2 相乘,然后我使用带有进程本地结果的收集操作,并将整个结果累加到根进程中。

我想知道在通用计算机中将两个矩阵相乘是否有更好的分区问题。

我的实现是在 OpenMPI 中。

c parallel-processing mpi openmpi matrix-multiplication

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

C中的结构填充

如果我在以下C中有结构定义

typedef struct example 
{
  char c;
  int ii;
  int iii;
};
Run Code Online (Sandbox Code Playgroud)

当我声明上述结构类型的变量时,应分配的内存是多少.例如ee;

什么是结构填充以及是否存在与结构填充相关的风险?

c structure

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