Я пытаюсь назначить программирование на C, где мне нужно перебирать каждый индекс каждой строки документа и устанавливать целочисленное значение в каждом символьном индексе в соответствующем массиве ar:malloc() возвращает нулевой указатель
//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]
}
Единственная проблема заключается в том, что после примерно девяти итераций malloc начинает возвращать нулевой указатель, который заставляет memcpy (очевидно) не работать.
Есть ли причина, по которой это происходит? У меня не хватает памяти, поскольку я распределяю эти крошечные массивы 9 раз.
Что говорит ваш отладчик? Любые 0-значения между ними? –
Между чем? – Miguel
Что вы назначили как значение max_width? Проверьте какие-то тривиальные ошибки, которые вы совершили. –