读书人

指向结构体变量的指针怎么用使用时总

发布时间: 2012-03-11 18:15:39 作者: rapoo

指向结构体变量的指针如何用,使用时总出现segmentation fault的错误,请指导啊
程序如下,在注释处总出现错误segmentation fault,为何?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char f_name[256];
FILE *bmp_file;
FILEHDR fhdr;
INFOHDR ihdr;
RGB *values;
unsigned int Ymin, Ymax;
unsigned int padding;
} BMP;
void bmp_open(BMP *bitmap)
{
if((bitmap-> bmp_file = fopen(bitmap-> f_name, "rb+ ")) == NULL){
printf( "cannot open file\n ");
exit(0);
}
return;
}
int main(int argc, char *argv[])
{
BMP *bitmap;

strcpy(bitmap-> f_name,argv[1]);//segmentation fault

bmp_open(bitmap);

return 0;
}



[解决办法]
你没有为这个指针分配内存。
[解决办法]
bitmap
这是一个指针,要先分配内存。
BMP *bitmap;

bitmap = (BMP*)malloc(sizeof(BMP));
[解决办法]
BMP *bitmap = new BMP;

读书人网 >C语言

热点推荐