我有一个名为Message
的字符串对象,它被赋予一个字符串,例如:
Message = "Hello";
然后将每个字符存储在字符数组中:
void Load()
{
Message.toUpperCase(); // Makes all the characters uppercase
for (int T = 0; T < Message.length(); T++)
{
Storage[T] = Message.charAt(T);
}
}
这部分工作正常。
现在我想调用一个需要传递指向数组的整数指针的函数,该数组映射出在5 * 7 LED矩阵上显示字符所需的位值。
通常情况下,我可以拨打Display(H)
(void Display(int Array[])
),就可以了。但是,我想使用字符串数组,以便它可以自动完成。问题是当正常使用H时,它被视为一个整数指针,它的效果很好。存储保存不是指针的字符,这会产生问题。
我尝试了各种转换方法,但似乎都失败了。这甚至可能吗?
这就是我的尝试:
char to int:
int w = int(Storage[L]);
int* ww = &w;
这个编译很好,但输出都是错误的。所以我不确定如何更进一步。
只是为了澄清,这有效:
int A[] = {0x1B, 0x15, 0xE, 0xE, 0x0, 0xE, 0xE, 0xE};
Display(A);
但这不是:
String[L] = A;
int w = int(Storage[L]);
int* ww = &w;
Display(ww);
我可能正在做些傻事,但我看不到它。
答案 0 :(得分:0)
int和char的大小不同,int(通常)是char大小的四倍,所以当你在数组中获取特定char的指针值时,你也将以下三个chars复制到int。这可能是你的输出混乱的原因。请尝试以下方法:
int i = (Storage[idx])
int * ptrI = &i;//now ptrI points to the single integer which has been copied.
如果要指向多个整数,则需要定义一个整数数组(比char数组小四倍) - 确保大小正确。除此之外我无能为力,因为你的解释不清楚。