使用指针访问u16类型

时间:2014-05-30 20:21:15

标签: c pointers

我正在尝试下面的代码,我在printf语句中看到崩溃。

typedef u16 skip_data

skip_data item1;

find_row(&item1);

find_row(skip_data *skip)
{
    int plane = 1;
    printf(" %d ", skip[plane]);

}

这是访问数据的正确方法吗?请原谅我提出非常基本的问题。

2 个答案:

答案 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'

}