簡體   English   中英

為什么我不能再為數組分配任何東西了

[英]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.

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