我正在尝试下面的代码,我在printf语句中看到崩溃。
typedef u16 skip_data
skip_data item1;
find_row(&item1);
find_row(skip_data *skip)
{
int plane = 1;
printf(" %d ", skip[plane]);
}
这是访问数据的正确方法吗?请原谅我提出非常基本的问题。
答案 0 :(得分:3)
您正在以无效索引访问内存。如果将plane
更改为0,它应该可以正常工作。 " C"中的数组/指针访问是0基于。
你也可以这样做:printf(" %d ", *skip);
此外,请勿忘记将item1
初始化为某个值(例如item1 = 0;
)。你拥有它的方式,item1
保存随机数据。
答案 1 :(得分:-1)
-1来吧!伙计们! // u16的typedef在哪里是无符号短(word)还是数组定义?
typedef unsigned short skip_data[10]//create a memory space for 10 'u16's
skip_data item1[1] = 500;
find_row(item1);//NOTE: no need for address for array
find_row(skip_data skip)
{
int plane = 1;
printf(" %d ", skip[plane]);//displays '500'
}