0
因此,作爲C相當新手的人,我遇到了我的第一個SIGSEGV錯誤。 它出現在一個簡短的C程序中,意思是「猜數字」遊戲。它由一個自定義函數組成,該函數將兩個數字和一個do-while循環與內部輸入進行比較。 開始和do-while循環:SIGSEGV短C代碼錯誤
#include<stdio.h>
int checkNum(int num1, int num2); //See below for explanation
int main(void) {
int input=0, rand=3; //"Random" number has fixed value for testing
do {
printf("Enter number from 0-10: "); //There is not actual range yet
scanf("%d",input); //Get input
} while(checkNum(input, rand)); //Checks if difference != 0
}
比較功能:
//Function for comparing input with "random" number
int checkNum(int num1,int num2) { //The two numbers that get compared; First one: input, Second one: "random" rumber
if(num1==num2) {
printf("Correct. The random number was %d",num2);
} else if(num1<num2) {
printf("Wrong. The random number is bigger.");
} else if(num1>num2) {
printf("Wrong. The random number is smaller.");
}
return num2-num1; //Return the difference, leads to 0 if equal
}
我懷疑的錯誤是在功能,造成丟失的使用指針,但作爲就我所瞭解的指針而言,它們在這裏似乎並不必要:我不會在函數中更改單個變量,並且返回值只會減去兩個值(這是我假設的)。
我希望我的錯誤不是太愚蠢,我要感謝所有能夠幫助或嘗試的人。 (我可以張貼我的處理器值,altough我不知道是否會有所幫助;如果需要調試的任何詳細信息,請告訴我)
非常感謝您的快速幫助;問題解決了,但是讓我困惑的是,我的c編輯器(「Dev-cpp」,C++和c編譯器)中的「調試」功能似乎也會導致sigsegv;但它停止出現,現在正常工作。 –