- 博客(4)
- 收藏
- 关注
原创 关于单链表中开辟新节点传递一级指针导致访问越界的问题
可以看到,如果我传递的是一个空链表,那么就直接将传递来的指针连接上新节点,否则就先找到这个链表的尾节点。于是我想到可能是回传时newnode节点的地址变了。我分别打印了返回前和返回后的地址,结果确实如此。在调试过后,发现在开辟新节点时候初始化的节点,在返回值的时候导致了数据的丢失。不难发现,返回时数据丢失了,导致在尾插代码中的tmp->next指针无法访问。这是返回前的newnode的节点中的数据,可以看到已经被初始化了。但是我用malloc开辟的空间是在堆区开辟的,不应该被自动回收。
2024-08-27 22:27:30 132
原创 C++中的引用
可以看到a的值并不是10,这是因为在test函数结束时局部变量的空间就被收回,这时我们再去打印a就属于非法操作。用引用作为形参,传参时相当于创建了一个姓名相同的参数 也指向实参的内存空间,所以在修改形参时,实参也会改变。C++推荐使用引用,因为语法方便,但是所有的指针操作都由编译器来完成了。2.如果函数的返回值是引用,那么它可以作为表达式的左值。引用的本质在C++的内部实现就是一个指针常量。所以引用做函数参数的优点就是可以简化指针。修改b的值的同时a的值也会改变。2.引用在初始化后,不可以更改。
2023-12-06 18:37:34 28 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人