1
我在這裏遇到一個奇怪的問題,並尋求幫助。解析參數時值改變
(gdb)
28 set_file_bit(file, bytePos, bitPos, argv[1]);
(gdb) p argv[1]
$3 = 0xbfffef5c "00"
(gdb) s
set_file_bit (file=0x804b008, bytePos=2, bitPos=2, binary=0x80490e5 "11") at util/file.c:112
112 long int pos = ftell(file);
我們可以看到binary的值是0x80490e5,而不是0xbfffef5c,爲什麼? argv是函數main的參數。 main函數的一些部分是
int main(int argc, char** argv){
FILE* file = 0;
file = fopen("t.txt", "r+");
unsigned int bytePos = 2;
unsigned int bitPos = 2;
char buff[2] = { 0, 0 };
get_byte(file, bytePos, 1, buff);
set_file_bit(file, bytePos, bitPos, argv[1]);
感謝
你是怎麼定義'set_file_bit'函數的? –
我在其他c源文件中定義了set_file_bit函數 – river