【发布时间】:2012-05-09 06:44:24
【问题描述】:
这是我的main.c
......
int main(int argc, char **argv)
{
init_arg(&argc, &argv);
......
}
这是我的init_arg.c
......
void init_arg(int *argc, char ***argv)
{
printf("%s\n", *argv[1]);
......
}
我编译它没有错误和警告。
我运行它:
./a.out include
得到分段错误
调试的时候发现步骤printf("%s\n", *argv[1]);
弄错了,它显示:
print *argv[1]
Cannot access memory at address 0x300402bfd
我想知道,如何在init_arg()函数中打印argv[1]。
【问题讨论】:
-
+1 用于首先调试并将其包含在您的帖子中!
-
在 GDB 中,当您的代码崩溃时运行命令 bt 以查看导致崩溃的堆栈跟踪。阅读crasseux.com/books/ctutorial/argc-and-argv.html,例如处理程序参数的 C 程序代码。
-
这是一个带有示例的 sn-p http://pastebin.com/SVAZjsXA
标签: c pointers gdb arguments main