0
으로 통과 한 후 나는이문자 포인터 매개 변수
#define LEN 10
#define MAX 200
void f(char test[][LEN])
같은 함수가 내가 가진이
char test[MAX][LEN];
:
:
f(test);
같은 코드가 지금은 DBX를 사용하여 코드를 추적하는 경우가 있습니다.
즉시 함수 f를 호출하기 전에 변수를 인쇄하고 배열은 모두 비어 있습니다. 그리고 f (test) 함수가 호출되면 포인터가 손상되고 배열의 일부 요소가 쓰레기 메모리를 가리키고 있습니다. 매개 변수가 전달 된 직후에 발생합니다.
어떤 이유 일 수 있습니까?
저는 오랫동안이 작업을하고 있으며 완전히 손실되었습니다.
아무도 힌트를 제공 할 수 있습니까?
'f (test)'와'f' 함수의 본문 앞에 코드를 표시 할 수 있습니까? – birryree
적어도 f()에 대한 코드를 게시해야한다고 생각합니다. –
하지만 문제는 함수를 호출하기 직전과 매개 변수가 전달 된 직후 변수를 출력한다는 것입니다. 함수의 본문은 아직 실행되지 않았습니다. – skydoor