C - 将值分配给结构数组的分段错误

C - Segmentation Fault Assigning value to Array of Struct

每当我这样做时,我都会遇到分段错误。我想知道是否有一种方法可以在不出现 SegFault 的情况下为结构体赋值?

typedef struct _chunk
{
  int lo;       // lower bound
  int hi;       // higher bound
} chunk;

chunk_stack = (chunk **)malloc(10 * 10 * sizeof(chunk **));

for (i = 0; i < chunk_per_thread; i++)
{
   chunk_stack[myid][i].lo = 0;
   chunk_stack[myid][i].hi = 1;
}

假设您需要分配一个大小为 r * c 的二维数组。
您需要首先为您所做的双指针分配内存,但其中有一个错误,即一个额外的 *在 malloc 函数中。

chunk **chunk_stack = (chunk **)malloc(r * sizeof(chunk *));

那么你需要分别为每一行分配内存。

for(int i = 0; i < r; i++){
    chunk_stack[i] = (chunk*)malloc(c * sizeof(chunk));
}