것은 내가 특별히 포인터를 사용하여 매트릭스를 만드는 방법에 C 일하고, 나를 혼란 한 가지 말 2 차원 배열에 matrix[i][j]
이이 요소에 위치하고 있음을 뜻C에서 2D 배열 (행렬) 할당?
*(*(matrix+i)+j)
같다고이다 , 위치 [3][3]
은 *(*(0+3)+3))
?
보다 구체적으로, I는 다음과 같은 코드를 사용하여 C의 코딩 매트릭스있어 : 그래서
double** makeMatrix(unsigned int rows, unsigned int cols)
{
unsigned int i;
double** matrix;
matrix = (double**) malloc(rows * sizeof(double *));
if (!matrix) { return NULL; }/* failed */
for (i = 0; i < rows; i++)
{
matrix[i] = (double *) malloc(cols*sizeof(double));
if (!matrix[i])
return NULL;
}
return matrix;
}
을 어레이 내의 요소 i 번째 각각에 메모리를 할당 - 이것은 우리 얻을 이유 각 요소가 자체 메모리 블록을 가지고 있기 때문에 [i] [j]에 대해 ( (matrix + i) + j)
질문을 게시하기 전에 사이트를 검색하십시오. http://stackoverflow.com/search?q=%5Bc%5D+2d+matrices – Boiethios
거만한 말투로 파열하기 전에 나는 사이트에서 '질문을 찾았고, 내가 무엇을 요구하고 있는지 구체적으로 일치하지 않는다. . – AinJalut
질문하시는 내용을 명확하게 설명하십시오 (예 : 배열이 어떻게 정의되어 있습니까?). 귀하의 게시물은 조금 엉망이며, 지금은별로 유용하지 않습니다. 이 페이지에서 여기에 사용 된 마크 업에 대한 소개를 참조하십시오. http://stackoverflow.com/editing-help – moooeeeep