gpt4 book ai didi

c - *** 检测到 glibc *** free() : invalid next size (normal): 0x0a03c978 ***

转载 作者:IT王子 更新时间:2023-10-29 00:43:03 26 4
gpt4 key购买 nike

<分区>

我正在编写一个套接字程序来下载图像。问题是,当我在像 gif 这样的小图片上测试我的代码时,它工作正常。但是当我用 JPG 图片(比 GIF 大)运行它时,我收到了错误消息:

*** glibc detected *** /home/ubuntu/NetBeansProjects/myDownloader/dist/Debug/GNU-Linux-x86/mydownloader: free(): invalid next size (normal): 0x0a03c978 ***

请查看代码,我会提供有关错误的更多信息。

FILE* pFile;
long lSize;
unsigned char* buffer;
size_t result;
FILE* combinedFile = fopen("mypic.jpg", "wb+");

for(i = 1; i <= numberOfPartitions; i++)
{
sprintf(filename, "part%d", i);
pFile = fopen(filename, "rb");

//obtain file size
fseek(pFile , 0 , SEEK_END);
lSize = ftell(pFile);
rewind(pFile);

// allocate memory to contain the whole file:
buffer = (unsigned char*) malloc(sizeof(unsigned char) * (lSize + 1));

if(buffer == NULL)
{
fputs("Memory error", stderr);
exit(2);
}

// copy the file into the buffer:
result = fread(buffer, 1, lSize, pFile);

if(result != lSize)
{
fputs("Reading error", stderr);
exit(3);
}
else
{
unsigned char* temp = strstr(buffer, "\r\n\r\n");

temp = temp + 4;
int len = lSize - (temp - buffer);

//printf("i : %d len is : %d plen is %f\n",i,len,pLen);
if(i != numberOfPartitions)
fwrite(temp, 1, len - 1, combinedFile);
else
fwrite(temp, 1, len, combinedFile);
}

fclose(pFile);
printf("crash here\n");
free(buffer);

}

fclose(combinedFile);

我从这部分得到了错误,正如我所说的,当图像尺寸较小时它工作正常。但是尺寸越大,它就坏了!P.S: 程序将图片分成几个文件,然后重新组合,所以组合部分是导致错误的部分。

非常感谢任何帮助,因为我已经被这个错误困扰了 3 天多了!

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