Адрес элемента в массиве становится слишком большим и вызывает переполнение
struct payment {
char id[17];
char date[10];
int cost;
struct payment* next = NULL;
};
int main() {
payment* hash = (payment*) malloc(n * sizeof(payment));
// ....
function(hash);
}
void function(payment hash[]) {
long long j;
// ...
if (hash[j].id[0] == '-')
// ...
}
(размер массива 2087123) У меня есть эта функция, но поскольку число j становится слишком большим (j = 1900000), поэтому возвращает ошибку переполнения.
Я пытался это решить:
if(((hash + j*sizeof(payment))->id)[0] == '-')
Но это не дает мне те же значения, что и предыдущий метод до сбоя. (которые правильные)
Может кто-нибудь помочь с этим? (Я много искал)