[英]How to convert a string to const void* in c++?
我有一個方法,其參數之一需要const void*
作為輸入。
當我這樣做時,它會起作用-
const void *a = "abc"; \\abc is also a string though.
我嘗試將字符串變量分配給const void *變量,但是它給出了一些錯誤。 為什么我不能直接將字符串變量分配給const void*
變量?
如何將字符串轉換為const void*
?
還有其他辦法嗎?
謝謝,
如果用“ string”表示std::string
,則這是一個類類型,不能直接轉換為指針。 字符串文字(例如"abc"
是一個字符數組,可以轉換為指針。
如果您想要一個指向字符串的字符數組的指針,則可以通過c_str
函數進行訪問:
const void * a = my_string.c_str();
請注意,如果銷毀或修改字符串,指針可能變得無效。
一個std::string
大於一個void *
,因此不適合它。 您可以將c字符串表示形式( string.c_str()
)或字符串( &string
)的地址傳遞給void *
。 在這兩種情況下,您都需要確保在string
消失或更改后, void *
不會訪問該string
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.