[英]Why can't I assign anything to an array anymore
我有一個鏈表類的實現(由於奇怪的原因使用char數組)
list_node::list_node(const std::string & input, int start, int end) {
std::cout << "1 arg constructor called" << std::endl;
letters = new char[end - start + 1];
int i = start;
for (i = start; i < end; i++) {
letters[i] = input[i];
}
letters[i] = '\0';
std::cout << letters << std::endl;
previous = NULL;
next = NULL;
}
我無法理解的是,第一次,這個方法被調用,它的工作原理。 此后,它沒有。 單步執行Eclipse中的調試器,for循環的主體根本不執行! 我補充道
letters[i] = '\0'
確保我的數組以null結尾,沒有任何區別。
我有另一種方法,它接收指向鏈表中前一個節點的指針。 我只是省略了它
看起來你實際上並不想用i
索引letters
,因為它start
。 如果start
大於0
,那么最終將在動態分配的數組的末尾運行。 相反,你想要:
letters[i - start] = input[i];
接着:
letters[i - start] = '\0'; // or end - start
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.