Я успешно написал C ++-код для радикальной сортировки, создав 10 блоков.Для 10 ведер я создал их следующим образом:
struct node{
struct node* next;
long value;
};
struct node*bucket[10];
for (int i=0; i<10; ++i) {
bucket[i] = (struct node *) malloc (1000000*sizeof(struct node));
}
, и это прекрасно сделано.
Но теперь мне нужно увеличить количество моих ведер до 100000. Я попыталсячтобы изменить размер этих блоков, как:
struct node*bucket[100000];
for (int i=0; i<100000; ++i) {
bucket[i] = (struct node *) malloc (1000000*sizeof(struct node));
}
Но на этот раз я думаю, что я даже не могу создать эти корзины.Я использую Visual Studio для кодирования, и это на C ++.Компилятор дал мне следующие предупреждения:
: предупреждение C4305: «аргумент»: усечение от «__int64» до «size_t»
: предупреждение C4309: «аргумент»: усечение константызначение
Я искал его в интернете, кто-то говорит, что число слишком велико.Это первый раз, когда я обрабатываю такое большое число в связанном списке.Нужно ли что-то изменить, чтобы этот код снова заработал?
Спасибо.Любые идеи и помощь, я буду признателен!