我正在尝试一个 C 编程任务,我需要遍历文档每一行的每个索引,并在相应数组 ar 中的每个字符索引处设置一个整数值:
//Jagged array ar containing pointers to each row
int* ar[line_count];
//The size of each row is the line width * the size of an int ptr
const int line_size = max_width * sizeof(int*);
//For each line
for (i = 0; i < line_count; i++)
{
//If the first runthrough, copy the blank array
if (i == 0)
{
ar[i] = malloc(line_size);
memcpy(ar[i], blank_ar, line_size);
}
//Otherwise, copy from the last row
else
{
ar[i] = malloc(line_size);
//This is set to a null pointer after several runthroughs
memcpy(ar[i], ar[i - 1], line_size);
}
//Edit the current row ar[i]
}
唯一的问题是,经过大约 9 次迭代后,malloc 开始返回一个空指针,导致 memcpy(显然)无法工作。
发生这种情况有什么原因吗?我没有办法耗尽内存,因为我只分配了这些小数组 9 次。