malloc 関数を使用して x_space のメモリを正常に割り当てました。ただし、それらに値を割り当てるときに失敗しました。ご清聴ありがとうございました。
以下はLiblinear(オープンソースのsvmツール)のtrain.cより。
#include<stdio.h>
#include<stdlib.h>
struct feature_node
{
int index;
double value;
};
void main()
{
struct feature_node * x_space;
long j;
x_space =(struct feature_node *)malloc(306396532*sizeof(struct feature_node));
if(x_space)
{
for(j=0;j<306396532;j++)
x_space[j].index=0; /* fail when j=37961212, ACCESS VIOLATION */
}
else
printf("malloc failed.\n");
puts("End");
getchar();
}