나는이 일을하는 데 약간의 어려움을 겪고 있으며, 인터넷상에서 높고 낮음을 검색했지만 아무 도움이되지 않습니다. 나는 기본적으로 임의의 행렬을 만들고 그것을 밖으로 인쇄하기 위해 노력하고있어, 나는 작업 및 테스트 된 기능 double random()
을 다음과 같이 나는 구조를 정의 : 내가 제대로 메모리를 할당 한있는구조 내의 배열에 포인터 증가시키기
typedef struct matrep {
unsigned rows, columns;
double *data;
} MATRIX;
,이를 사용하여 내 임의의 기능은 임의의 행렬을 만들 수 있지만, 무슨 일 나는 이동하지 알고, 포인터가 결코 이동하지
MATRIX *rand_matrix(MATRIX *mat)
{
for (int i=0; i < mat->rows; i++)
{
for (int j=0; j < mat->columns; j++)
{
*(mat->data) = random() ;
}
}
return mat ;
}
때문에 나는이 기능
void print_matrix(MATRIX *mat)
{
int i, j ;
if ((mat->data)==0 || (mat->rows)==0 || (mat->columns)==0)
{
printf("Empty matrix\n");
return ;
}
printf("\n\nMatrix of dimensions %d x %d\n\n", mat->rows, mat->columns) ;
for (i=0; i < mat->rows; i++)
{
for (j=0; j < mat->columns; j++)
{
printf("\t%1.2lf", *(mat->data));
}
printf("\n") ;
}
}
0123을 사용하여 매트릭스를 인쇄 할 때
위의 행렬에서 'j'로 임의의 문자를 교환하면 올바른 수의 행과 열로 행렬이 인쇄되지만 각 값은 j의 최대 값과 같습니다.
기본적으로 내가 도와 줄 수있는 바는 내 *(mat->data)
포인터를 늘리는 방법을 찾는 것입니다. 내가 화살표 연산자를 호출 할 때 자동으로 증가하는 것에 대해 들었지만 작동하지 않는 것 같고 시도 할 때 *(mat->data)++
좋은 큰 오류가 발생합니다.
도움이 될만한 사람에게는 도움이 될 것입니다.
자동으로 증가하지 않습니다. – sth