2013-06-18 7 views
2

동적으로 할당 된 구조체 배열이 있습니다.구조체에 대한 포인터를 배열에 캐스팅

배열 유형으로 캐스팅하여 내 디버거에서 전체 배열을 표시하려고합니다.

가능합니까?

이 캐스트는 좋은 생각이 아니지만 디버거의 표현식 평가 용 캐스트 일뿐입니다. -

+1

MSVC 디버거에서는 p가 ptr 구조이고 100이 동적 배열 길이라고 가정하면'p, 100'을 쓸 수 있습니다. 코드를 변경할 필요가 없습니다. 다행히도 다른 디버거에는 비슷한 트릭이 있습니다. –

+1

GDB에서 디버거에게 프롬프트 할 때'p (struct my_struct [size]) var ' – Rerito

+4

예 가능한 경우 캐스팅 할 수 있습니다. 진짜 질문은 배열을 배열 유형으로 할당하지 않은 이유입니다. [배열을 동적으로 할당하는 방법] (http://stackoverflow.com/questions/12462615/how-do-i-correctly-set-up-access-and-free-a-multidimensional-array-in-c). – Lundin

답변

0
  • 내 디버거가 전체 배열을 표시 할 수 있도록 배열 유형으로 변환하려고합니다. 가능한가?

예. 이제 디버거에서 Static 정적 배열을 볼 수 있습니다

t_my_struct * Dynamic = (t_my_struct *)calloc(100, sizeof *Dynamic); 
t_my_struct (* Static)[ 100 ] = (t_my_struct (*)[ 100 ])Dynamic; 

예를 들어, 유형 t_my_struct의 100 개 요소는 할당 된 경우 배열 입력 한 다음 t_my_struct의 100 개 요소의 배열에 t_my_struct => 포인터 포인터를 캐스팅. MSVC에서 작동합니다.

관련 문제