#include <string>
#include <cstdlib>
#include <iostream>
using namespace std;
// function prototypes
string boxOfStars(int w, int h);
string lineOfStars(int len);
// function definitions
string lineOfStars(int len) {
string result = "";
for (int j=0; j<len; j++) {
result += "*";
}
return result;
}
string boxOfStars(int w, int h) {
string result_1 = lineOfStars(w);
for (int i=0; i<h; i++)
cout << result_1 << endl;
return 0;
}
int main() {
int width, length;
cout << ""Enter a width and length: ";
cin >> width >> length;
cout << boxOfStars(width, length);
return 0;
}
이 프로그램의 요령은 boxOfStars()
함수 내에서 lineOfStars()
함수를 호출하는 것입니다.다른 함수를 호출하는 함수와 관련된 C++ 코드의 문제점은 무엇입니까?
프로그램을 실행할 때 "Segmentation fault : 11"오류가 발생합니다.
Enter a width and length: 5 5 ***** ***** ***** ***** ***** Segmentation fault: 11
나는이 모든 것을 인터넷에서 검색하려고 시도했지만 문제를 찾을 수 없습니다.
프로그램이 터미널에서 제대로 실행되지만 각 출력의 끝에서이 오류 메시지가 나타납니다.
누군가 내 코드에서 오류를 설명해 주시겠습니까?
당신은'boxOfStars()'에'0'을 반환합니다. 'boxOfStars()'내부에서'cout'을 사용하여'void'로 만들거나'main()'안에서'return'과'stars' 라인을 포함하는 문자열을 작성하십시오. – cantordust
segfault를 일으키는 문제 외에도'lineOfStars' 함수가 훨씬 더 간단해야합니다. 루프의 문자열에 추가하는 대신 캐릭터와 길이를 허용하는'string' 생성자를'return string (len, '*');와 같이 호출하는 것이 좋습니다. –
@ Ryan : 이것은 디버거를위한 것입니다. 하나를 사용하는 방법을 배우십시오. 당신이 세그 폴트를 찾는데 도움이되었을 것입니다. –