输入操作会影响链表节点的地址?
在写静态链表时遇到的问题。
链表节点的地址是由mallo分配的。
scanf("%d", &insertIndex);
printf("unusedhead11 add:%d\n", pDList->unUsedHead);
经过下面的操作后,从gdb调试发现pDList->unUsedHead的地址变了(unUsedHead是pDList的节点)!
scanf("%s", insertData);
printf("unusedhead add:%d\n", pDList->unUsedHead);
求问这是什么情况。
[解决办法]
说的再详细点,谢谢!
[解决办法]
输入的字符串长度大于 insertData 定义的长度的话就会发生各种灵异事件.
黑客经常利用这种代码来做缓冲区溢出攻击.
[解决办法]
是不是进行了插入或者删除等操作或者是其他的操作,导致你认为只是输入改变了地址,如果仅仅是输入的话,应该是不会的,因为系统给你已经分配好了地址空间,如果这样还能随意改变你的数据地址,这系统也太蛋疼了。