gpt4 book ai didi

c++ - 变量 'fname' 周围的堆栈已损坏

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

程序是读回多个bin文件在“主”程序结束时发生上述错误。我哪里代码错了?谢谢你的帮助

    char* read_back(const char* filename) 
{
FILE* pFile;
long lSize;
char* buffer;

pFile = fopen(filename, "rb");
if (pFile == NULL) { fputs("File error", stderr); exit(1); }
fseek(pFile, 0, SEEK_END);
lSize = ftell(pFile);
rewind(pFile); // set file pos at the begining
// copy the file into the buffer:
buffer = (char*)malloc(sizeof(char)*lSize);
size_t result = fread(buffer, 1, lSize, pFile);
if (result != lSize) { fputs("Reading error", stderr); exit(3); }
fclose(pFile);
return buffer;
}
int main() {
const char *fname[2] ;
fname[0] = "C:\\0_data.bin";
fname[1] = "C:\\1_data.bin";
fname[2] = "C:\\2_data.bin";
int i;
char * readback_data;

for (i = 0; i < 3; ++i)
{
readback_data=read_back(fname[i]);
}
return 0;
}

最佳答案

const char *fname[2] ;

这声明了一个包含两个值和两个指针的数组:fname[0]fname[1]

fname[0] = "C:\\0_data.bin";
fname[1] = "C:\\1_data.bin";
fname[2] = "C:\\2_data.bin";

这试图将三个指针放入一个大小仅为两个的数组中。那是你的堆栈损坏,就在这里。

关于c++ - 变量 'fname' 周围的堆栈已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54300142/

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