本帖最后由 jiemnij 于 2014-4-25 08:34 编辑
- uint8_t TempData[] = {"9600"};
- uint8_t *MenuDataSet[3] ={
- "NO-000",//43
- "9600bps",//44
- "0000-0000000", //45
- };
- uLen = GetLenStr(&MenuDataSet[u8i][0]);//找到指针数组的大小
- for(u8j=0;u8j<uLen;u8j++)//复制字符串数组到临时的
- {
- *(MenuDataSet[u8i]+u8j) = TempData[u8j];
- }
因为你的
uint8_t *MenuDataSet[3] ={
"NO-000",//43
"9600bps",//44
"0000-0000000", //45
}
直接以字符串形式存放, 而字符串在你以指针形式指向的时候是存放到const区域的,如果你的const是分配到flash那里
那么后续的往里面赋值自然会出错
要想实现你的目的,可以改写一下代码
uint8_t str_43[]="NO-000";//43
uint8_t str_44[]="9600bps";//44
uint8_t str_45[]="0000-0000000";//45
uint8_t *MenuDataSet[3] ={
str_43, str_44, str_45};
///---------------------------------------------
for(u8j=0;u8j<uLen;u8j++)//复制字符串数组到临时的
{
*(MenuDataSet[u8i]+u8j) = TempData[u8j];
}
另外你这里写着是复制字符串数组到临时数组
但是你的代码是,从临时数组里面拷贝到你原来定义的字符串..所以写法就不对..前后对调一下才对
如果正真要实现的是复制字符串到临时数组那么,,上面的定义代码不需要修改
只要如下修改..(有数组类型, 指针这种符号.还是少用为妙)
for(u8j=0;u8j<uLen;u8j++)//复制字符串数组到临时的
{
TempData[u8j] = MenuDataSet[u8i][u8j];
}
|