【发布时间】:2013-08-14 01:36:31
【问题描述】:
我使用malloc() 制作了一个浮点数数组,如下所示:
float*x1;
x1 = (float*)malloc((vertexes/3)*sizeof(float));
if(x1 == NULL)
{
printf("Out Of Memory");
getchar(); return(1);
}
到目前为止,根据我有限的知识,以上似乎很好,但是当我尝试像这样使用该数组时:
fscanf(stl,"%f",x1[N]); 它不起作用。
x1 之后括号中的 N 是一个通常会递增的变量,但出于测试目的,我引用了所有这些,并且只使用了数组范围内的任何数字,例如 3。当我尝试这样做时,程序编译并运行良好,直到它到达fscanf 代码行。那时它崩溃了,windows说它试图找到问题的解决方案。我尝试通过输入x1[3] = 12345 来使用我的动态数组,这似乎有效,因为printf("%f",x1[3]); 输出12345 就像它应该的那样。这让我相信问题出在fscanf(stl,"%f",x1[N]);,但我不知道为什么。
提前感谢您的任何建议,非常感谢。
【问题讨论】:
-
没有打印错误或警告?
-
“顶点”的复数是“顶点”:)。看起来@paxdiablo 隔离了你失败的原因。
-
@mbratch,这是复数形式中的 一个,尽管它可能取决于您指的是哪个英语变体 :-) 至少在伟大的南部土地上,两者是允许的。
-
@paxiablo 我明白了。好吧,我想我已经暴露了。 ;)
标签: c arrays dynamic malloc scanf