小编Ars*_*szi的帖子

从函数返回的结构的C++指针导致访问冲突

我是C++的新手.我使用Visual Studio.我的调试版本按预期工作,但发布版本因访问冲突而崩溃.结构:

struct GeneticData
{
    int NumberOfIdDataPairs;
    char** IdBuffer;
    char** DataBuffer;
};
Run Code Online (Sandbox Code Playgroud)

IdBuffer是一个由20个字符组成的char数组,Databuffer是一个由102个字符组成的字符数组.返回指针的函数:

GeneticData* LoadData(FILE* dataFilePtr) //dataFilePtr is valid in the function
{
    char* result = NULL;
    int fileLine = 0;
    GeneticData geneticData = *new GeneticData();

    geneticData.NumberOfIdDataPairs = *new int;
    geneticData.IdBuffer = new char*[gSizeOfBuffer];
    geneticData.DataBuffer = new char*[gSizeOfBuffer];

    for (int i = 0; i < gSizeOfBuffer; i++)
    {
        geneticData.IdBuffer[i] = new char[gSizeOfId];
        geneticData.DataBuffer[i] = new char[gSizeOfData];
    }

    do
    {
        result = fgets(geneticData.IdBuffer[fileLine], gSizeOfId, dataFilePtr);
        fgets(geneticData.DataBuffer[fileLine], gSizeOfData, dataFilePtr);
        fileLine++;
    } while …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

0
推荐指数
2
解决办法
965
查看次数

标签 统计

c++ ×1

pointers ×1