簡體   English   中英

如何從C字符串中提取地址

[英]How to extract address from c-string

我正在編寫程序,我需要從c字符串獲取指針。 例如,我有一個像“ 0x3b021e01”這樣的字符串,作為輸出,我想要一個合法的指針void * ptr == 0x3021e101。

我嘗試了這種方法:

char *addr = "0x3021e101"; // this address is just an example of 32-bit addr

uint32_t iaddr = from_ch_to_hex(addr); // iaddr == 0x3021e101

void *data_buf = (void *)iaddr; // data_buf = 0x3021e101

uint32_t reg_val = *(uint32_t *)data_buf;

但是我遇到了細分錯誤。 怎么了 我該如何解決?

0x3b021e101是奇數,因此您會期望對齊錯誤。

順便說一句,除非您通過其他方式知道該地址是有效的(例如,通過指向該地址的指針),否則為什么不只使用該指針呢?

暫無
暫無

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

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