C指针-Segment错误的解决办法是什么

标签 c pointers segmentation-fault swap

为什么会输出“Segmentation failure(core dumped)”

当我运行以下代码时,它显示段错误(核心已转储)

#include <stdio.h>

void swap(int *, int *);

int main() {
    int x = 5, y = 10;
    swap(x, y);
    printf("%i\n %i\n", x, y);
}

void swap(int *a, int *b) {
    int s;
    s = *a;
    *a = *b;
    *b = s;
}

最佳答案

问题出在 swap(x, y);

行中

您正在传递值而不是地址。您应该收到编译器警告。

使用交换(&x, &y);

关于C指针-Segment错误的解决办法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48664959/

相关文章:

c++ - 与在 C++ 中返回 vector 的行为不一致

c - 将指针传递给 scanf() 会产生段错误

c - 如何从内核空间获取sockfd?

c - C 中整数数组的动态内存分配和自由函数

c - 在以字符 n 或 i 开头的字符串中搜索 float 时,sscanf 返回 1

c++ - 函数返回指针

c - 使用 Function 反转字符串并将整个字符串返回到主函数

c++ - 使用 malloc 指针的段错误

linux - PHP exec(myexe) 在 PHP 应用程序中失败,但在 CLI 中失败。在用户 "apache"下运行失败

c - 仅在不使用调试器时出现段错误