小编ysj*_*ysj的帖子

C中的哪个数据结构允许我轻松存储行和追加行?

我得到了一个字符串数据列表.10,20,30是行号

10. string 1
20. string 2
30. string 3
Run Code Online (Sandbox Code Playgroud)

如果用户输入"23字符串数据".23是用户想要插入的行号.数据应该变成这样

10. string 1
20. string 2
23. string data
30. string 3
Run Code Online (Sandbox Code Playgroud)

如果用户输入"40字符串数据".数据应该变成这样

10. string 1
20. string 2
23. string data
30. string 3
40. string data
Run Code Online (Sandbox Code Playgroud)

我在C的数据结构方面相对较新.我应该使用哪种数据结构来有效地存储这种数据?我目前的方向是实现动态数组或链表.但是,下面列出了我遇到的问题.

动态数组的问题:

  1. 使用行号作为索引并创建足够的空间以确保数组长度始终大于或等于最高行号.为未使用的索引浪费了大量内存.
  2. 打印出数据将是一个问题.例如.索引0-9没有分配内存.访问它将导致错误.需要找到方法来了解使用哪个索引?

链表问题:

  1. 我不能跳索引(不确定).如何确定哪一条线路在另一条线路之间并在两者之间轻松插入线路?

c arrays linked-list data-structures

7
推荐指数
1
解决办法
280
查看次数

这个汇编代码有什么作用?(TEST,XOR,JNZ)

1.

TEST EAX,EAX
JNZ SHORT program.00407190
Run Code Online (Sandbox Code Playgroud)

2.

XOR EAX,EAX
JNZ SHORT program.00407190
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我.谢谢!:)

根据我的理解到目前为止:

JNZ如果不等于零则跳跃,它将跳转或不跳,取决于是否ZF设置为1.如果是1,它就不会跳跃.否则,它会跳跃.

根据我对代码#1的理解,TEST EAX,EAX将检查它是否为零.如果它不等于零(ZF为0),它将跳转到地址00407190.

对于代码#2,
XOR EAX,EAX将EAX寄存器设置为0.是否设置了任何标志?如果没有,JNZ指令如何确定跳转?

最后,人们为什么要检查是否EAX为0?请帮助我更简单详细的解释,我还是初学者.

x86 assembly reverse-engineering

5
推荐指数
1
解决办法
8062
查看次数

用于VB.NET的AES加密的标准库?

是否有用于VB.NET的AES加密的标准库?我想用静态私钥加密字符串.

我用Google搜索并发现了很多变化.我真的不知道如何确定哪些算法是安全的.

vb.net encryption aes

4
推荐指数
1
解决办法
2万
查看次数

C++ pow(400,-9)给出了错误的答案

double testpower;

testpower = pow(400,-9);
Run Code Online (Sandbox Code Playgroud)

testpower给我3.8146972656250003e-024哪个是不同的计算器输出4E-7

任何人都知道为什么?

c++ math pow

-6
推荐指数
1
解决办法
151
查看次数