指向结构体变量的指针如何用,使用时总出现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;