3

我有一个名为的字符串对象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);

我可能在做一些愚蠢的事情,但我看不到它。

4

1 回答 1

0

int 和 char 的大小不同,int(通常)是 char 大小的四倍,因此当您在数组中获取特定 char 的指针值时,您也在将以下三个 char 复制到 int 中。这可能就是您的输出混乱的原因。尝试以下操作:

    int i = (Storage[idx])
    int * ptrI = &i;//now ptrI points to the single integer which has been copied.

如果要指向多个整数,则需要定义一个整数数组(比 char 数组小四倍)——确保大小正确。除此之外,我无能为力,因为您的解释不清楚。

于 2012-11-09T09:58:15.107 回答