qiubin2012 发表于 2014-4-14 21:27:46

两个数组如何拼接后用一个指针操作

在Cortex-M3处理器上,例如uint8_t p = {1, 2}; uint8_t data = {3, 4, 5};如何合并操作后,可以使用一个uint8_t *src指针去操作合并后的数组,要求*src值为1,*(src + 1)值为2,*(src + 2)值为3,*(src + 3)值为4,*(src + 4)值为5,   主要是数组data的长度不固定,长度准确值可以知道,但是这个值有时几十个字节,有时几百个字节。难道是每次开个足够大的数组,将两个数组拷贝进来完成合并?

20061002838 发表于 2014-4-14 22:03:31

对于C语言,你能让两个数组存储地址是相邻的就可以,否则免谈

DevLabs 发表于 2014-4-14 22:57:54

试试链表吧.

nongxiaoming 发表于 2014-4-15 01:35:10

楼主用动态内存管理啊,你不就是想长就长,想短就短嘛

lusson 发表于 2014-4-15 08:36:26

p的长度固定?
把p和data数组定义到一个结构体里,他们地址就是连续的,p放在前面
这样把指针指向p就可以操作p和data了。

qiubin2012 发表于 2014-4-15 18:41:45

楼上主意不错。我之前想到先定义一个uint8_t *dest 指针让它指向定长但是变化范围大的数组data,即dest = data;然后让dest--;*dest = p;dest--;*dest = p;然后此时就可以用dest指针操作整个数组,但是我感觉这样会破坏内存的数据...万一破坏了重要数据就惨了。
页: [1]
查看完整版本: 两个数组如何拼接后用一个指针操作