我需要讀取0x2428(MCU的閃存)地址中的值。如何使用memcpy讀取值?memcpy讀取地址的值
uint8_t *newData ,x;
memcpy(newData, 0x2428, sizeof x);
但是,我得到
錯誤[Pe167]:類型的參數 「INT」 是 型「無效常量的參數不兼容*
我應該如何解決錯誤?
我需要讀取0x2428(MCU的閃存)地址中的值。如何使用memcpy讀取值?memcpy讀取地址的值
uint8_t *newData ,x;
memcpy(newData, 0x2428, sizeof x);
但是,我得到
錯誤[Pe167]:類型的參數 「INT」 是 型「無效常量的參數不兼容*
我應該如何解決錯誤?
您試圖傳遞一個內存地址(0x2428)作爲memcpy操作的目標地址,但編譯器只是將其視爲一個const int值(整數文字)當它期望一個常量void *。您至少必須將其轉換爲(const void *)0x2428的數據類型才能使此語法有效。
值得注意的是,這實際上是一種非常糟糕的做法 - 試圖直接訪問特定內存是一種在PIC和其他低功耗嵌入式設備上經常發生的活動,但它非常容易出錯,並且可能會讓您感覺非常糟糕。 –
謝謝。它現在工作正常 – sven
非常好,很高興聽到它的工作!如果有機會,請將此標記爲問題的解決方案,因此它被標記爲社區的「已回答」。 乾杯! –
可能將地址轉換爲'const void *'? –
爲什麼即使使用'memcpy()',只需初始化和取消引用指針? –