C程序冻结在fprintf(大量数据)

时间:2013-10-15 11:34:08

标签: c

我正在尝试将剪贴板内容写入文件,但由于某种原因,该程序正在冻结。

FILE *fp;
fp = fopen("tmp.code","w");
fprintf(fp,getclip()); /*writes*/

fclose(fp);

char* getclip(){

    HANDLE clip;
    if (OpenClipboard(NULL)){
        clip = GetClipboardData(CF_TEXT);
        CloseClipboard();
        return clip;
    }

}

我做错了什么?

由于

1 个答案:

答案 0 :(得分:4)

函数getclip()返回intfprintf期望指向char的指针。它正在尝试访问无效的内存位置:您将HANDLE作为int返回,然后fprintf将其解释为内存地址以从中读取字符。

请查看编译器错误和警告并修复代码。