모두에게 좋은 날,char 포인터의 다차원 배열
알아낼 수없는 일이 있습니다. 내가 포인터의 다차원 배열 생성 :
char *listA[5000][2];
특정 상태에서를, 나는 특정 문자열이 배열 안에 저장됩니다합니다. 이들은 단순한 변수의 일반적인 문자열이고 문자열의 배열 안에 들어있는 또 다른 문자열입니다.
listA[j][0]=strMix;
listA[j][1]=ingredients[i];
j++;
J은 물론, 모든 추가 증가되고, 로우이다.
결과는 모든 행에 대해 두 개의 열을 포함하고 하나는 성분을, 다른 하나는 상대 strMix를 포함하는 배열이어야합니다.
문제는 내가하려고 할 때이 다차원 배열 읽을 수 있다는 것입니다 :
printf("%s", listA[0][1]); // the ingredient
항상 정확,하지만 :
printf("%s", listA[0][0]); // the strMix code
은 항상 잘못; 정확하게 모든 행에 대해 마지막 strMix를 읽습니다.
나는 열의 순서를 바꾸려고 노력했다. 그리고 나의 큰 놀라움으로, 문제는 항상 strMix를위한 것이었고 성분들 [i] 문자열을위한 것이 아니다.
strMix 열은 listA에 쓰고 읽을 때만 정확합니다. 물론, 나는 말할 것입니다. 예를 들어
:
printf("Current: %s vs Previously: %s",lista[j][0], lista[j-1][0]);
들은, 동일한 모든 J에 대한 마지막 strMix 동일 읽고.
메모리 나 다차원 배열의 포인터에 관한 정보가 있으면 간단히 말씀 드리지만 조언 해 주시면 감사하겠습니다.
시간 내 주셔서 감사합니다. fdt.
여기에 표시된 모든 내용이 합리적인 것처럼 보입니다.이 배열을 초기화하는 코드를 보여주십시오. 아마 당신의 문제가있는 곳일 겁니다. –
이것은 일반적인 문제입니다. 종종 문제는 새로운 문자열이 읽은 각 항목에 할당되지 않는다는 것입니다. –
포인터 strMix를 설정하는 곳 또는 포인터가 가리키는 배열의 내용을 표시하십시오. –