没有错误,但我期待10个值,但我只有一个。以下是我的创建和显示功能。
WM_NCDESTROY
我需要改变什么?
答案 0 :(得分:0)
尝试以下一行
current = new_node;
current->next = new_node;
因为在你的情况下没有current
指针的值,所以如何更新它的下一个。首先更新/设置当前然后更新/设置它的下一个。
if (start == NULL)
{
start = new_node;
current = new_node;
current->next = NULL;
new_node = NULL;
}
else
{
current = new_node;
current->next = new_node;
}
答案 1 :(得分:0)
编译器消息的问题是编译器无法确定else语句中使用的变量current
是否已提前初始化。
如果是警告,您可以忽略它。
或者您可以通过以下方式重写该功能
void create()
{
const int N = 10;
node **current = &start;
while ( *current ) current = &( *current )->next;
for ( int i = 0; i < N; i++ )
{
*current = new node;
( *current )->data = randomNum();
( *current )->next = nullptr;
current = &( *current )->next;
}
}
for循环的主体也可以写成(我假设数据成员data
在节点定义中的数据成员next
之前。否则交换初始化器。
*current = new node { randomNum(), nullptr };
current = &( *current )->next;