C 在windows上访问ar_列表上的字符串时出错
为什么这个函数在Windows上崩溃,在Linux上运行良好 我发现问题在于行C 在windows上访问ar_列表上的字符串时出错,c,arrays,string,variadic-functions,C,Arrays,String,Variadic Functions,为什么这个函数在Windows上崩溃,在Linux上运行良好 我发现问题在于行printf(“%d….%s”,I
printf(“%d….%s”,I,因为如果我尝试使用“test”而不是参数字符串,菜单会运行良好。我怀疑我试图访问字符串索引之外的元素,但这只是发生在windows上,Linux下没有分段错误信号
void menu(int count, ...) {
va_list listPointer;
va_start(listPointer, count);
for(int i = 1; i <= count; i++) {
char *string = va_arg(listPointer, char*);
printf("\n%d ..... %s", i < count ? i : 0 , string);
}
va_end(listPointer);
}
void菜单(整数计数,…){
列表指针;
va_开始(列表指针、计数);
对于(int i=1;我可以告诉我们如何调用菜单?您使用什么编译器?在linux上使用gcc,我的计算机;但我正在一所要求安装此库的学校上安装。他们使用mingw编译器。@DyP,当然,在程序上您可以使用:菜单(3,“选项1”,“选项2”,“选项3”);菜单将立即从此函数创建。我认为这是一个很好的函数,而不是多个printfs。但我必须在周一之前解决此问题。我从未使用windows编程,所以我不明白mingW为什么不允许调用。感谢您抽出时间。该代码中没有任何内容会导致SEGFAUT,assu我知道menu()调用正确。您能演示一下如何调用menu()吗?您一定是在代码中的其他地方不正确地调用了它。