C 언어에 대한 질문 - 페이지 9

 
Кеша Рутов :

mine_score 에서 *m은 int에 대한 포인터이고 주석은 그것이 배열이라고 말합니다.

이 문자열 길이 배열에 대해 메모리가 할당되었을 뿐이며 값이 없습니다.

행렬 M 자체의 경우

메모리는 여기에 문자열 포인터에 할당됩니다.

그리고 여기 열에 대해

네, 나중에 혼동하지 않도록 아마도 구조를 떠나야 할 것입니다.

나는 단지 매트릭스를 교체하고 싶었다

 
Maxim Dmitrievsky :

네, 나중에 혼동하지 않도록 아마도 구조를 떠나야 할 것입니다.

나는 단지 매트릭스를 교체하고 싶었다

그래서 헷갈리지 않기 위해 예전에 열거형, 추가 구조 등도 부정한 적이 있습니다. 당신이 없이 할 수 있는 모든 것, 그리고 당신은 몇 달 안에 이 코드를 보고 처음부터 다시 작성하는 것이 더 쉽습니다. 나는 일반적으로 다른 시청자에 대해 침묵합니다. 당신은 매우 수치스러울 수 있습니다. 또한 이들과 플러스에서 표준 배열은 함수에 할당되어 전달될 때 참조가 되며 크기와 구조를 알 수 있는 방법이 없는 경우가 많고 필요하고 동적 배열에 대해 명확하고 배열도 아니지만 첫 번째 요소에 대한 포인터 형태의 메모리 조각입니다.

 
 if (param->est == EST_MIC_APPROX)
        ret = OptimizeXAxis(xx, yx, prob->n, Q_map, q, P_map, p, score->m[i]+ 1 ,
                             score->M[i] );

이것은 이전에 선언된 2차원 배열 M ( double **M; /* (equi)characteristic matrix */ )을 얻었지만 "ridged" 문자열 M[i] 하나만 이 함수에 전달되었을 때 얻었습니다. mkl에서 이미 행렬을 통해 수행했습니다. 그리고 지금 나는 오랫동안 저주하고 있습니다.

하지만 어쩌면 그것은 가짜 문제

 
나는 C에 대한 공상 과학 랩을 좋아합니다 https://www.youtube.com/watch?v=cdX8r3ZSzN4
 

***

 
Konstantin Nikitin :

프리랜서bazhenovivansergeevich 당신

조금 더하면 그는 금지 될 것입니다 :-)

친절한 중재자가 전자를 지우지 않으면

 
Maxim Kuznetsov :

조금 더하면 그는 금지 될 것입니다 :-)

친절한 중재자가 전자를 지우지 않으면

음, 때때로 목욕은 생각을 정리하는 데 도움이 됩니다.

 

결과적으로 다음과 같은 구성이 됩니다.

 typedef struct TF_Status TF_Status;
TF_Status* TF_NewStatus();

TF_Status의 크기를 확인했습니다. 컴파일이 32비트이면 4바이트, 64비트이면 8바이트입니다.

하지만 사실 TF_NewStatus()가 무엇을 반환하는지 이해하지 못합니다 .

 
Igor Makanu :

결과적으로 다음과 같은 구성이 됩니다.

TF_Status의 크기를 확인했습니다. 컴파일이 32비트이면 4바이트, 64비트이면 8바이트입니다.

하지만 사실 TF_NewStatus()가 무엇을 반환하는지 이해하지 못합니다 .

쓰는 것이 정상이라면 구조에 대한 포인터가 반환됩니다.