相关疑难解决方法(0)

返回语句不会在c中执行

所以,我有一个奇怪的案例,并不能完全弄清楚我做错了什么.这是场景:

我写了一个创建器函数,它应该返回一个指向函数的指针.为了用数据填充结构,我读了一个文本文件.根据我用作输入的文本文件,错误会发生或不会发生.(对于具有~4000行的文本文件而言,错误发生,对于具有~200的文件,如果这会产生差异,则会发生错误).奇怪的是代码执行到return语句之前.但它不会返回但只是挂起.没有错误,没有编译器警告(英特尔编译器).我想知道是否有人经历过类似的事情或有什么可能出错的想法.

下面的代码被简化以说明问题.实际的代码有点复杂,因为我使用Schreiner的方法来玩C中的对象.

struct Somestruct {
    int A;
    int B;
    int C;
}

static void *Somestruct_ctor(void *_self) {
    struct Somestruct *self = _self;
    fillDataFromFile(self);
    printf("This line gets executed.\n");
    return self; // <- this one doesn't
}

int main(int argc, char *argv[]) {
    void *myObject;

    myObject = Somestruct_ctor(myObject);
    printf("The code does NOT get until here\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c return intel icc

3
推荐指数
1
解决办法
79
查看次数

标签 统计

c ×1

icc ×1

intel ×1

return ×1