gpt4 book ai didi

c - MinGw 执行时间错误

转载 作者:行者123 更新时间:2023-11-30 17:49:55 24 4
gpt4 key购买 nike

我有这个功能,运行良好:

void testeStatic2()
{
static char elementos[8][128];
const int qtdCol = 128;
const int qtdLn = 8;

printf("\n");

char* pLinhas[qtdCol];
int i = 0;
for (i = 0; i < qtdLn; i++)
pLinhas[i] = elementos[i];

Fila_Init(&TELIT_dadosRecebidos, qtdLn, qtdCol, pLinhas);
}

我无法以更简单的方式重新创建此代码,因此,如果可能的话,请忽略代码的其余部分,但问题是,尽管它有效,但如果我取出 printf("\n") 它给了我一个执行时间错误。有人对此有任何想法吗?

谢谢...

最佳答案

只需将 pLinhas 设置为 static 即可正常工作。我认为问题是在函数作用域结束后引用不存在的指针。所以,这段代码已经过测试并且可以工作!

void FilaInit()
{ int i = 0;
static char elementos[8][128];
static char * pLinhas[8];

for (i = 0; i < 8; i++)
pLinhas[i] = &elementos[i][0];

Fila_Init(&TELIT_dadosRecebidos, 8, 128, pLinhas);
}

一个细节是pLinhas是一个指向char的指针数组,一个指向字符串的指针数组。它的大小是8*4字节。另一点是我必须使用常量整数来声明 pLinhas。

我想强调这个解决方案......我已经搜索了很多这种结构化数据。当您无法使用 malloc(例如嵌入式应用程序)但需要创建多个不同大小的队列时,这是非常有趣的。

对于那些想要使用此解决方案的人,我在谷歌代码上创建了此项目:Qwoma 。很高兴收到对这个简单项目的批评和想法。

谢谢大家!

关于c - MinGw 执行时间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17558616/

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