因此,我试图从.s19文件中加载s-records到内存中,用于我正在处理的任务及其工作。然而,当我从我的代码中删除一个未使用的数组时,一切都停止工作并崩溃。删除未使用的变量会导致代码崩溃
未使用数组是:
char test[65536];
这是我写的装载机:
void loader(FILE * srec)
{
char instring[SREC_LEN];
char test[65536]; // This isn't used, but the program crashes without it for some reason
int i=0;
int j=0, k,l;
while (fgets(instring, SREC_LEN, srec) != NULL)
{
while(instring[i] != '\n') // Counts the characters in the s-record
{
i++;
}
j = j+i;
for(k=0;k<=i;k++) // Puts the records into memory
{
memory[l] = instring[k];
l++;
}
l = j;
}
#ifdef DEBUG
printf("MEMORY: %s",memory);
#endif // DEBUG
}
如果你能帮助我了解为什么发生这种情况,我将不胜感激。
似乎未定义的行为案例。什么是“记忆”? – haccks
'l'未初始化。和'我'需要重置。 – BLUEPIXY