程序在调用malloc后退出

时间:2015-03-16 12:22:21

标签: c malloc

我有一个简单的程序来分配内存,并将文件从资源复制到该内存空间,但问题是在调用malloc函数后没有任何异常或错误的程序退出。 我使用VS2010 express,我放了一个断点,当我点击F10(跳过)程序退出。 这是代码:

int main(void){

    HRSRC rInfo;
    HGLOBAL rPointer;
    PVOID filePointer;
    int fileSize;
    unsigned char *buffer;


    rInfo = FindResourceA(0, MAKEINTRESOURCE(101), RT_RCDATA);
    if(rInfo == NULL){
        return 0;
    }

    rPointer = LoadResource(NULL, rInfo);
    if(rPointer == NULL){
        return 0;
    }

    filePointer = LockResource(rPointer);
    if(filePointer == NULL){
        return 0;
    }

    fileSize = SizeofResource(0, rInfo);
    if(fileSize == 0){
        return 0;
    }


    buffer = (unsigned char *)malloc(fileSize); // <-- breakpoint here
    if(buffer == NULL){
        MessageBoxA(0, "Error allocating memory.", "My App", 0);
    }else{
        MessageBoxA(0, "Allocating memory done without errors.", "My App", 0);
    }
    memcpy(buffer, stubPointer, stubSize);
}

我已验证SizeofResource(0, rInfo);返回的大小(1024字节,使用调试器) 我不知道你是否想要更多的信息。如果有,请告诉我。

0 个答案:

没有答案