함수의 구조체 인자로 받아서 그 인자로 데이터 넣기...
그놈은멋있었다
질문 제목 : 함수의 구조체 인자로 받아서 그 인자로 데이터 넣기...질문 내용 :
아래와 같이 구조체를 인자로 받아서 그 구조체에 data를 넣을 려고 합니다.
그런데 자꼬 segmentation fault가 나면서 프로그램이 종료가 되버리네요..
빨간색으로 된것이 문제 인것 같은데요.
뭐가 잘못된건지..ㅡㅡ; 혹은 다른 방법이 있으면 조언을 부탁드립니다.
항상 포인터관련된게 문제가 되네요....
typedef struct {
unsigned short dpram_head;//0x00
unsigned short dpram_tail;
unsigned short dpram_space0;
unsigned short dpram_space1;
unsigned short dpram_space2;
unsigned short dpram_space3;
unsigned short dpram_space4;
unsigned short dpram_space5;
unsigned short fram_head;//0x10
unsigned short fram_tail;
unsigned short fam_space0;
unsigned short fram_space1;
unsigned short fram_space2;
unsigned short fram_space3;
unsigned short fram_space4;
unsigned short fram_space5;
unsigned short nand_head;//0x20
unsigned short nand_tail;
unsigned short nand_space0;
unsigned short nand_space1;
unsigned short nand_space2;
unsigned short nand_space3;
unsigned short nand_space4;
unsigned short nand_space5;
}nand_deftypedef;
nand_deftypedef buffer;
main() {
getnanddef(&buffer);
printf(init dpran_head[%04x], tail[%04x]\n, nand_def.dpram_head, nand_def.dpram_tail);
printf(init fram_head[%04x], tail[%04x]\n, nand_def.fram_head, nand_def.fram_tail);
printf(init nand_head[%04head[%04x], tail[%04x]\n, nand_def.nand_head, nand_def.nand_tail);
}
int getnanddef(nand_deftypedef* nand_def) {
int i, ret = 0;
char nand_buf[1024];
if(0 == nandread(nand_cmd_offset, nand_buf, sizeof(nand_buf))) {
printf(buf copy start..\n);
memcpy(nand_def, nand_buf, sizeof(nand_buf));
printf(buf copy end..\n);
}
printf(get nand defualt data: \n);
for(i = 0 ; i 20 ; i++) {
printf([%d][0x%02x]\n, i, nand_buf[i]);
}
if(ret == 0) {
printf(get nand defualt data....ok!\n);
}
else {
printf(get nand defualt data....ng!\n);
}
return ret;
}