簡體   English   中英

指向C ++中的字符串指針數組的指針

[英]Pointer pointing to a string pointer array in C++

我有一個字符串的指針數組:

string *names = new string[numOfNames];

然后用文件中的值填充該數組。 我試圖按字母順序對名稱進行排序,所以我試圖將另一個指針數組分配給每個指向的元素名稱的地址。 所以我想做這樣的事情:

string *namesPtr = new string[numOfNames];
namesPtr[0] = &names[0];

但是我在等號上揮舞着紅色

沒有運算符“ =”與這些操作數匹配,操作數類型為std :: string = std :: string *

我有一個名稱的指針數組,因為numOfNames將在我要打開的文件中指定,並且據我所知,常規數組將不起作用,因為我必須指定數組中的元素數。

當然有類型不匹配。

namesPtr[0]類型為string
&names[0]類型為string*

您需要的是:

string** namesPtr = new string*[numOfNames];
namesPtr[0] = &names[0];

要完成指針分配,您需要:

for (int i = 0; i < numNames; ++i )
{
   namesPtr[i] = &names[i];
}
namesPtr[0] = &names[0];

這是不正確的。 &將產生名稱中已取消引用的字符串的地址,因此您正在為非法的字符串分配地址。

暫無
暫無

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

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