C 用单个值填充浮点数组

C 用单个值填充浮点数组,c,arrays,C,Arrays,这是我的阵列: #define WERT -0.01 我想用WERT的值填充它 我找不到一条近路,于是试了一下 float name[9999]; for(i=1000;i您正在迭代数组末尾之外的一个元素-更改: for (i = 1000; i <=9999 i+=1) { name[i] = WERT; } for(i=1000;iC数组索引开始于0,结束于小于数组长度的索引1。当您试图写入名称[9999]时,由于没有这样的数组元素,您得到了一个SIGSEGV或

这是我的阵列:

#define WERT -0.01
我想用WERT的值填充它

我找不到一条近路,于是试了一下

 float name[9999];

for(i=1000;i您正在迭代数组末尾之外的一个元素-更改:

 for (i = 1000; i <=9999 i+=1) {
      name[i] = WERT;
 }

for(i=1000;iC数组索引开始于0,结束于小于数组长度的索引1。当您试图写入名称[9999]时,由于没有这样的数组元素,您得到了一个SIGSEGV或类似值-而且您很幸运,并且不仅仅覆盖了其他对象。(或者您确实覆盖了,并因此崩溃。)

要修复:

for (i = 1000; i < 9999; ++i) {
      name[i] = WERT;
}

<代码> >(i=1000;i切换到C++,并用初始化值的构造函数创建类<代码> WERTSfloat <代码>。< /p>
#define ARRAY_LEN 9999
float name[ARRAY_LEN];

    for (i = 1000; i < ARRAY_LEN; i+=1) {
          name[i] = WERT;
     }
然后


将填充整个数组,无论其大小:-)

按照零索引约定,数组包含索引0到9998,而不是9999。我们不是您的调试器…请下次尝试自行修复!@Mcs请不要编辑您的问题,以免破坏其原始意图。这会使此线程无法读取,对那些花时间回答的人不公平。并说i++而不是i+=1。它是这是同样的事情,但令人惊讶;使人们认为你在试图做某事odd@pm100:是的,
i++
更常见,但它并没有错。对不起,我累了,顺便说一句,i++在C语言中看起来不错,但在JavaScript中不受欢迎,我就是来这里的from@LeeDanielCrocker当前位置我没有说这是错的,只是t
i++
在C(及相关语言)中更为惯用.当然,你可以自由地用各种不同的方式攻击自己的脚。你为什么建议人们不要使用++,这可能是每个非平凡的c程序中普遍使用的一个通俗易懂的习惯用法。我猜停止条件和for loopGah头部的增量之间缺少一个半solon我是盲人;-)但不确定修复编译错误是否算作“风格”;-)哈哈,你的幽默感在哪里?这对可读性来说真的很糟糕。至少调用类Float\u array\u of _999\u WERTS,而不是将其与系统数据类型混淆。我想我可能太累了,无法理解你在开玩笑^^^我的幽默感从数组末尾消失了,需要从堆栈中取出;-)@阿列斯特芬斯:我试了好几次,现在我想我有了正确的名字。
for (i = 1000; i <9999 i+=1) {
      name[i] = WERT;
 }
#define ARRAY_LEN 9999
float name[ARRAY_LEN];

    for (i = 1000; i < ARRAY_LEN; i+=1) {
          name[i] = WERT;
     }
class WERTSfloat
{
  public:
    float Value;
    WERTSfloat() { Value= WERT; }
};
WERTSfloat ArrayOf9999WERTSfloats[9999];