나는 cpp를 배우는 중입니다. 나는 맥의 커맨드 라인에서 g ++를 통해 컴파일하는 나의 일반적인 모드에서 오늘 프로그램을 작성했다. 나는 이중뿐만 아니라 엑스 코드에서 내 작품을 확인하고 IDE에서 컴파일하지 않도록 코드를 일으키는 코드의 라인을 발견했습니다다차원 배열에서 배열을 반환하십시오.
라인은 다음과 같습니다
피사체가 다차원 배열 인string result[2] = subject[rand() % nsubject];
여기서 문자열의 각 멤버는 두 문자열의 배열이고 nsubject는 배열의 길이를 보유하는 int입니다. Xcode는 다음과 같이 말합니다 : 배열 초기화 프로그램은 초기화리스트이어야합니다. 그러나 앞에서 설명한 것처럼 g ++는 아무런 불만없이 컴파일합니다. 그래서 언어에 익숙하지 않아서이 진술은 아마도 형편없는 것이라고 생각합니다. Xcode가 허용되는 것을 찾을 수있는 몇 가지 방법이 있어야합니다. 여기
훨씬 이해가되지 않는 상황에서 제거 문제를 입증 할 수있는 단편이지만, 다음은 내 터미널 벌금에 잘 컴파일하지만 Xcode를 구축하는 데 실패 :#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main(){
string subject[][2] = {
{"a", "b"},
{"c", "d"},
{"e", "f"},
{"g", "h"},
{"i", "j"}
};
int nsubject = sizeof subject/sizeof subject[0];
srand(static_cast<unsigned>(time(0)));
string result[2] = subject[rand() % nsubject];
cout << result[0] << endl; //should return 'a','c','e','g' or 'i'
return EXIT_SUCCESS;
}
배열에는 많은 기능이 없습니다. 기대하는 의미에'std :: array'를 사용하십시오. – chris
문제를 보여주는 최소한의 실제 예제를 게시하십시오. 문맥에서 벗어나는 한 줄로 그것이 무엇인지 말하기는 어렵습니다. –
좋아요, 조각을 추가했습니다 – awfulHack