奇怪的“Null pointer assignment”,高手进

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:05:14
这是一个在TC下显示16色位图的程序,其中输入文件已经用其他程序转换成了putimage可输出的格式。程序其他正常就是在程序结束退出图形界面后输出一个“Null pointer assignment”,可是我并没有给空指针指向的空间赋值啊。程序如下:

#include <dir.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>

int main(void)
{
    char *GetIma(char *_16File);
    int gd = VGA, gm = VGAHI;
    char *_16File;
    char *buffer;
    initgraph(&gd, &gm, "c:\\tc");
    printf("\nInput filename in this directory : ");
    gets(_16File);
    buffer = GetIma(_16File);
    cleardevice();
    putimage(10, 10, buffer, COPY_PUT);
    getch();
    closegr

我猜测你的程序因为在tc里面使用,所以指针有分far near的区别
默认的好像是near型指针,但是这种指针旱象不能分配大于64KB的空间
所以有时可能分配内存时会出现问题

你试试看 char far *buffer;
把程序里的指针都改成 far 型号的
另外全局变量默认就是far型的