首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C应用程序在运行时出错

C应用程序在运行时出错
EN

Stack Overflow用户
提问于 2012-04-10 17:37:30
回答 5查看 66关注 0票数 0

我已经构建了一个C应用程序,当我构建它时,它没有显示任何错误,但当我运行它时,它给出了错误“分段错误: 11”。如果有帮助,下面是我使用的代码:

代码语言:javascript
运行
复制
#include <stdio.h>
int main(char *argv[]) {
printf("The project path is: ./Projects/%c", argv[1]);
return 0;
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-10 17:43:05

您有许多问题:

  • main的签名是一个参数计数,后跟一个C字符串数组。
  • 在使用该数组之前,应始终检查计数。
  • 该数组由字符串组成,因此您需要%s来打印它们。

这应该是可行的:

代码语言:javascript
运行
复制
#include <stdio.h>
int main(int argc, char *argv[]) {
    if (argc < 2)
        fprintf (stderr, "Wrong number of arguments\n");
    else
        printf ("The project path is: ./Projects/%s\n", argv[1]);
    return 0;
}
票数 1
EN

Stack Overflow用户

发布于 2012-04-10 17:39:48

正确的main原型化语法是

代码语言:javascript
运行
复制
int main(int argc, char *argv[]) { ... }

printf中的%c转换规范还会打印一个字符,要打印字符串,请使用%s

票数 3
EN

Stack Overflow用户

发布于 2012-04-10 17:40:05

  1. 将签名更改为int main(int, char*[]);
  2. What参数是否要传递给进程?如果您没有传递任何超出范围的argv[1] is out of
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10086303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档