【发布时间】:2014-04-09 07:46:55
【问题描述】:
我从下面的代码中得到未知尺寸错误,
atmel_device_info_t *info;
int *ptr = row->offset + (void *) info
这是一个转换问题,我应该如何解决这个错误?谢谢你的帮助。
【问题讨论】:
-
你能发布错误吗?你还没有初始化
info。
标签: c++ c windows-ce dfu
我从下面的代码中得到未知尺寸错误,
atmel_device_info_t *info;
int *ptr = row->offset + (void *) info
这是一个转换问题,我应该如何解决这个错误?谢谢你的帮助。
【问题讨论】:
info。
标签: c++ c windows-ce dfu
您不能使用void * 指针便携地进行算术运算。这是有道理的,因为它是一个指向未知类型数据的指针,该数据没有内在大小。指向数据的大小是进行算术运算的核心部分。
通常使用“字节”指针:
int *ptr = (int *) ((unsigned char *) info + row->offset);
以上假设row->offset 是字节偏移量,而不是int 偏移量。如果你想要后者,请相应地投射:
int *ptr = (int *) info + row->offset;
【讨论】:
row->offset 值在bytes 中,那么您需要您的指针以byte 为单位工作。