如何制作2d数组的互斥锁?

时间:2017-02-12 18:20:51

标签: c multidimensional-array mutex

我仍然对编程有点新意,对不起,如果我没有太多意义。我试图制作一个2d数组的互斥锁,以对应我正在使用的另一个2d数组对象。这是我的代码

#define NUM_THREADS 100

static pthread_mutex_t mutexes[NUM_THREADS][NUM_THREADS] = { 
  for(int i = 0 ; i < NUM_THREADS ; i++) {
    P99_DUPL(NUM_THREADS, PTHREAD_MUTEX_INITIALIZER);
  }
};

我这样做是否正确?甚至可以做这件事吗?

编辑:我在'for'&#34;之前得到错误&#34;期望的表达式当我尝试编译时。

1 个答案:

答案 0 :(得分:0)

您无法使用for循环定义和初始化2D数组。由于您处理的是一个非常大的数组(100 x 100),最好的方法可能是将定义和初始化分开。

对于2D interger数组:

int i, j;
#define ARRAY_SIZE 100
int my_array[ARRAY_SIZE][ARRAY_SIZE];  // Define the variable

for (i=0; i<ARRAY_SIZE; ++i)           // Initialize the variable
{
    for (j=0; j<ARRAY_SIZE; ++j)
    {
        my_array[i][j] = i * j;
    }
}