在C中使用数组

use*_*670 1 c c++ arrays

我是C和C++的新手,我需要有关数组的帮助.我有一个数组初始化为零,500个元素(myDataBinary).现在我还有一个数组的第i个值,比如说1,2,3 ....现在通过从(my_data [10])读取值(1,2,3 ......),我想在相应的元素中myDataBinary"1",其余应为"0".我已经编写了下面的代码来实现这一点,但是我遇到了一些分段错误而无法看到正确的结果.任何有关这方面的帮助将不胜感激.提前致谢

     int my_data[10] = {1,3,9,10};
     int myDataBinary[500] = {0};
     int index;
     for(int i=0; i<sizeof(my_data);i++)
      {
        index = my_data[i]; 
        myDataBinary[index] = 1;
        printf("rec data %d = %d\n",index,myDataBinary[index]);

      }
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 5

sizeof(my_data) 以字节为单位返回数组的总大小,而不是元素的数量.

因为ints(通常)是2个字节宽,所以你最终会在数组之外.

  • 它可能有点误导"通常".在我的系统(x86)上,它们是4个字节. (3认同)