10 個のバケットを作成して、基数ソート用の C++ コードを作成することに成功しました。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: 'argument': '__int64' から 'size_t' への切り捨て
: 警告 C4309: '引数': 定数値の切り捨て
インターネットで調べたところ、数が多すぎると誰かが言っていました。リンクされたリストでこれほど多くの数を処理するのは初めてです。このコードを再び機能させるには、何か変更する必要がありますか?
ありがとうございました。アイデアや助けをいただければ幸いです。