invalid conversion from 'const char*' to 'char*'
該指標可以指向常量也可以指向變數,只是從該指標的角度而言,它所指向的是常量,
通過該指標不能修改它所指向的資料.
1.const char*是不能直接賦值到char*的,這樣編譯都不能通過,理由:假如可以的話,
那麼通過char*就可以修改const char指向的內容了,這是不允許的.
所以char*要另外開闢新的空間
string str = "dasfas";
char* p = (char*)str.c_str();
這個跟3樓的效果其實是一樣的。
還有就是把const指標,轉換成非const指標,目的不是為了修改指標指向的值,而往往是為了傳參的方便。不得已才使用的。
或者用 strcpy的方法
相關推薦
invalid conversion from 'const char*' to 'char*'
const char*是指向常量的指標,而不是指標本身為常量,可以不被初始化.該指標可以指向常量也可以指向變數,只是從該指標的角度而言,它所指向的是常量,通過該指標不能修改它所指向的資料.1.cons
解決“invalid conversion from void* to char*”和“deprecated conversion from string constant to 'char*' "
先看下面這個C語言程式,它的作用是使用動態儲存分配來建立字串的副本,如果記憶體分配失敗,duplicate函式就返回空指標。 #include <stdio.h> #include &
使用char指標賦值引發警告deprecated conversion from string constant to ‘char星’
最近在做demo的時候遇到如下警告。 warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] 參考程式碼為: #include <stdio.h>
一個小錯誤: deprecated conversion from string constant to char*錯誤的修改
當我們將一個character pointer variable 初始化成一個string literal的時候, 就會出現此類錯誤。 在最新的C標準或者C++標準中, 使用如下語句, 無論使用gcc 或者g++命令, 都會報出上面的錯誤, 不能通過編譯: ch
warning:deprecated conversion from string constant to 'char *'解決方案
Linux 環境下當GCC版本比較高時,編譯程式碼可能出現的問題 問題是這樣產生的,先看這個函式原型: void someFunc(char *someStr); 再看這個函式呼叫: someFunc("I'm a string!"); 把這兩個東西組合起來,用最新的g++編譯一下就會得到標題中的警告。 為
解決:warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
程式碼 static int CheckOneReg(uint8_t busNo, char *titl
【Linux開發技術之常見問題】一個建立執行緒時常見的問題:invalid conversion from `void*' to `void*(*)(void*)
void main_thread ( void *ptr ) { char *message1 = "Thread 1"; char *message2 = "Thread 2"; pthread_t thread3, thread4; int iret3, iret4;
解決cast from 'char*' to 'char**' increases required alignment of target type [-Werror=cast-align]
cast from 'char*' to 'char**' increases required alignment of target type [-Werror=cast-align] 如#define NEXT(t) ((char **)(t))[nextCol
error: cast from ‘char*’ to ‘int’ loses precision
spa error err .... nbsp roman rom style 錯誤 程序: char* addrCom; addrCom= ......//賦值 if(-1 == (int)addrCom) //導致編譯出錯 { ...... }
解決:invalid application of `sizeof' to incomplete type `char[] '錯誤
最近做一個DIY玩具,遇到的這個問題: 解決:invalid application of sizeof' to incomplete typechar[] ‘錯誤 //a.c檔案 #include "a.h" char array[]={0XED,0X34,0X40,0
const char to LPCTSTR不能轉化問題
Visual C++ 2008裡cannot convert parameter 1 from 'const char [13]' to 'LPCTSTR'造成不能執行的原因主要是2005和2008中增加了一些引數型別的安全性檢查,所以通常在6.0沒有問題的LPCTSTR與 const char
const char**與char**類型的區別
con tdi span 賦值 int class ret return pan #include <stdio.h> #include <stdlib.h> int main() { int a = 25.5; int *p_a
string、const char*、 char* 、char[]相互轉換
其他 相互 str 了解 相互轉換 AC cell include 打印 string、const char*、 char* 、char[]四者類型經常會需要轉化。 一:轉化總結形式如下: 使用時,要對源格式和目標格式進行初始化。源格式賦值為具體的內容,目標格式賦值為空。
const char*和char const*和const char * const
String.h檔案 #include <iostream> #include <string> using namespace std; class String { public: String() { s = NULL; } String(const cha
const char * 、char const *、 char * const 三者的區別
C/C++ 中關於以下三種定義: const char *ptr; char const *ptr; char * const ptr; 現整理三者之間的區別與聯絡。 一、const char *ptr; 定義一個指向字元常量的指標,這裡,ptr是一個指向 char* 型
Oracle Error ORA-22835 Buffer too small for CLOB to CHAR
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
【C++】 char*,const char*(char const *) ,char* const
const char*,封禁星號,值不能變,但可以變地址; char* const,封禁地址,地址不能變,而且值也不能變。值不能變是因為char*不支援變數修改,所以這個值就怎麼也不能變。相當於該變數是一個固定記憶體中存了一個不可改變的字串,地址和字串都不能變。這個字串可以賦值給cha
Java – How to convert String to Char Array
Java – How to convert String to Char ArrayIn Java, you can use String.toCharArray() to convert a String into a char array. StringToCharArray.javapackage c
解決 C2664 “char *strcpy(char *,const char *)”: 無法將引數 2 從“CString”轉換為“const char *”
在使用舊工程中的函式時, 在VS 2017上編譯出現如上問題, 但是該函式在之前的版本上可以正常編譯, 怎麼會出現這問題呢?難道不向前相容, 不應該, 一定是哪裡沒設定好, 在找資料查詢之後, 還是找到了, 記錄下, 方便大家也方便自己. 1. 編譯錯誤顯示圖
【C++】const char* 和char* 之間的轉換
const char*是指向常量的指標,而不是指標本身為常量,可以不被初始化.該指標可以指向常量也可以指向變數,只是從該指標的角度而言,它所指向的是常量, 通過該指標不能修改它所指向的資料. 1.const char*是不能直接賦值到char*的,這樣編譯都不能通過,理由