以下是我的代码:
#include <stdio.h>
#include <math.h>
void main () {
int my_data[4][500];
int myDataBinary[500] = {0};
int index1 =0;
my_data[0][1] = 1;
my_data[0][3] = 3;
my_data[0][5] = 9;
my_data[0][4] = 10;
for(int i=0; i<sizeof(my_data)/sizeof(int);i++)
{
if(my_data[0][i] > 0){
index1 = my_data[0][i];
myDataBinary[index1] = 1;
printf("my data %d = %d\n",index1,myDataBinary[index1]);
}
}
}
我看到的是:
my data 1 = 1
my data 3 = 1
my data 10 = 1
my data 9 = 1
Bus error
我猜这个错误最后是因为我在“for循环”中使用的sizeof。我想只为我的二维aray中的那些值运行我的循环。知道我哪里出错了。
答案 0 :(得分:1)
而不是:
for(int i=0; i<sizeof(my_data)/sizeof(int);i++)
你可能想要:
for(int i=0; i<sizeof(my_data[0])/sizeof(int); i++)