-1

2D 동적 배열을 사용하고 수정 방법을 모릅니다. 오류, 도와주세요! 사용자로부터 문자열을 얻고 문자열로 분리하여 2 차원 동적 배열에 넣고 싶습니다. 코드 부분 배열을 할당합니다.난 고칠 수없는 오류가 발생했습니다 : 'std :: bad_alloc'의 인스턴스를 던진 후에 호출 된 종료() : std :: bad_alloc Aborted (코어 덤프)

int colCount,rowCount; 
    string** table = new string*[rowCount]; 
    for(int i = 0; i < rowCount; ++i) 
    { 
    table[i] = new string[colCount]; 
    } 
+1

하기 시작하려면 :이 C + +를하기 때문에, 당신이 예를 들어 다음과 같이 2 차원 배열로 std::vector을 사용하는 것이 좋습니다 대신'std :: vector'를 사용해야합니다. 다른 벡터 안에 벡터를 중첩시킬 수 있습니다. –

+3

귀하의 문제에 관해서는 [최소, 완전하며 검증 가능한 예] (http://stackoverflow.com/help/mcve)를 작성하여 보내주십시오. 예를 들어,'colCount'와'rowCount'의 값을 알려주고, 초기화하는 방법을 보여 주면됩니다. 그리고 [좋은 질문을하는 법을 읽어보십시오] (http://stackoverflow.com/help/how-to-ask)에 시간을 할애하십시오. –

답변

1

코드는 따라서 그 값은 쓰레기이며, colCountrowCount 초기화하지 않습니다. 초기화되지 않은 변수를 가진 메모리를 동적으로 할당하려고 시도합니다. 물론 이것은 정의되지 않은 동작을 호출합니다.

int colCount = 5, rowCount = 5; 

PS :

처럼, 당신의 변수를 초기화

std::vector<std::vector<std::string>> table; 
+0

유형을 문자열로하고 싶습니다. 종류 데이터베이스를 시뮬레이션하기 위해 문자열의 2D 벡터를 사용할 수 있습니까? – shirazy

+0

2D vectror는 행렬 @shirazy를 제공합니다. 여기서'table [i] [j]'는 문자열입니다. 그래서 예! – gsamaras

+0

미안하지만 이해가 안됩니다. 문자열의 2D 벡터를 갖고 싶습니다. 가능합니까? 이 벡터 <벡터 > 또는 2D 동적 배열을 사용하는 것이 더 좋은 아이디어일까요? – shirazy