@江户川柯南_qq 不是视频错了,是你错了,我给你捋一下,捋之前改个名,p1, p2 太乱了,p1 改叫 pCurrOne,p2 改叫 pPrevOne。
最后一次是判断 price,假设最后一次输入的 price 是 0, 那么在最后一次的下一次循环判断就不会通过,那么最后一次也就是 pCurrOne 就直接作废(视频这里忘了 free() ),而 pPrevOne 将作为真正的最后一个,所以是 pPrevOne -> next = NULL;
最后一次是判断 price,假设最后一次输入的 price 是 0, 那么在最后一次的下一次循环判断就不会通过,那么最后一次也就是 pCurrOne 就直接作废(视频这里忘了 free() ),而 pPrevOne 将作为真正的最后一个,所以是 pPrevOne -> next = NULL;
2019-03-09
前面有很多人说最后一个节点是p1,其实并不是,首先p1,p2并不是节点,只是一个临时变量,就像冒泡排序中的tmp,节点是malloc分配的内存块。其次最后一个节点是p2指向的内存块,因为p1是在price不等于0的情况下才追加到p2指向的内存块的next指针中,但是由于判断=0,所以没有追加!!!注意p2并不是节点,p1也不是节点,他们都是指针,都仅仅指向地址,由于最后一个p是指向(0,0),这个内存块并没有追加到上一个内存块的next指针中,而上一个内存块的位置在哪呢?最后一次执行循环的时候,p1把地址给了p2,所以最后一个地址是p2指向的内存块。
2018-12-31
n==0,应该作为一个错误处理或者单独分开返回0才对吧,一个大于0的整数,在递归的过程中是不会有参数为0的情况出现的
2018-11-30
这时候,我将char name[10]和int card的位置调换,结果用gdb的时候果然在name后面进行了填充,另外,gdb查看内存时要先x/31d 地址,才能x/32d 地址,不然会将多个字节串联
2018-11-29
我试了一下,我的struct有
int card 4字节,
char name[10],10字节
char school[15],15字节
按理说,name后面你应该填充两个字节,school填充一个字节,但实际上三个字节都填充再了school后面,这是我用gdb查出来的
int card 4字节,
char name[10],10字节
char school[15],15字节
按理说,name后面你应该填充两个字节,school填充一个字节,但实际上三个字节都填充再了school后面,这是我用gdb查出来的
2018-11-29
最新回答 / 慕移动9181930
同学 你这样写css样式有问题的 像这样width=200px;要写成这样:width:200px;主键自动禁止重复,没办法设置成相同的值,只有把主键约束去掉才行
2018-11-26