簡體   English   中英

將char數組轉換為int指針

[英]Conversion of a char array to an int pointer

我有一個名為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);

我可能正在做些傻事,但我看不到它。

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數組小四倍) - 確保大小正確。 除此之外我無能為力,因為你的解釋不清楚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM