gpt4 book ai didi

c++ - 谁能给我解释一下这段代码?

转载 作者:行者123 更新时间:2023-11-27 23:32:19 25 4
gpt4 key购买 nike

aCCB->C16_ArgInfo(aCCB->InstHdl,2,&tType2,&tOpt2,&tLen2,NULL,&tCount2);

if (tType2 == _TypeAlpha &&
tOpt2 == (_ArgOptVAR | _ArgOptARRAY))
{
/* read array */
tBuf = static_cast<char*>(malloc(tLen2));
aCCB->C16_ArgRead(aCCB->InstHdl,2,0,tBuf);

tTab = static_cast<char**>(malloc(sizeof(char*) * tCount2));
tSize = tLen2 / tCount2;
*tTab = tBuf;

/* define sort table */
for (tLoop = 1; tLoop < tCount2; ++tLoop)
tTab[tLoop] = tTab[tLoop-1] + tSize;

我所理解的是 aCCB->InstHdl 包含一些转换为字符串数组 (char**) 的原始数据。

我不明白的是最后一个循环。它有什么作用?它是做什么用的?我不得不承认我的 C++ 知识是完全不存在的...

最佳答案

它循环遍历数组,分配上一次迭代的值加上 tSize。那是什么意思或为什么……我他妈的怎么知道?

我不会因为无法理解该代码而对自己太苛刻。很难读。

编辑:

哦,伙计。只需阅读对 OP 的评论之一,然后再查看它。这段代码太可怕了!!!

这似乎是正在发生的事情:一个数组被读入 tBuf。然后创建一个数组数组来保存 tCount2 数组。然后将 tSize 初始化为 tLen2/tCount2,这基本上创建了 tCount2 项……您将看到。

然后将 tBuf 指针分配给 tTab“数组的数组”中的第一个元素。

现在是 for 循环....for 循环基本上拆分系列中的第一个元素,并在每个 tLen2/tCount2 段向主 tBuf 提供点。

你得到的是...

[0] [1] [2] [3] [4]
| | | | |
v v v v v
|datadatadatadatadata|

啊!!!

不,它不会导致任何未定义或未指定的行为。这真的很丑。

关于c++ - 谁能给我解释一下这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com