This question already has answers here:
Crash or “segmentation fault” when data is copied/scanned/read to an uninitialized pointer
(5个答案)
去年关闭。
我在实验室系统(使用Windows)的C语言中解决了这个简单的问题。我使用DevC ++编写此代码,并且它可以在DevC ++上运行,但无法在Mac系统上编译相同的代码。
码:
该程序在Windows(DevC ++)上运行,但是在macOS(macOS 10.14.2)上运行该错误消息。
(5个答案)
去年关闭。
我在实验室系统(使用Windows)的C语言中解决了这个简单的问题。我使用DevC ++编写此代码,并且它可以在DevC ++上运行,但无法在Mac系统上编译相同的代码。
码:
#include<stdio.h>
#include<stdlib.h>
int* oddSwap(int x, int y)
{
int temp = x;
x = y * 5;
y = temp * 5;
int *k;
*k=x+y;
return k;
}
int main()
{
int x=5;
int y=3;
int *k=oddSwap(x,y);
printf("\n%d", *k);
return 0;
}
该程序在Windows(DevC ++)上运行,但是在macOS(macOS 10.14.2)上运行该错误消息。
Bus error: 10
最佳答案
swap
-函数意义不大,因为您仅在函数内交换参数,但是结果随后将两个值与可交换运算符+
组合在一起(所以为什么要全部交换?)。
然后,将一个值分配给一个指针,该指针不指向有效的对象:int *k; *k=x+y;
。但是无论如何,完整的操作对我来说毫无意义。
也许您想要这样的东西:
void oddSwap(int *x, int *y) {
int temp = *x;
*x = *y * 5;
*y = temp * 5;
}
int main()
{
int x=5;
int y=3;
oddSwap(&x,&y);
printf("\n%d:%d", x,y);
return 0;
}
关于c - 在Mac上无法执行C代码(最初在DevC++中执行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54197834/
10-11 02:22