[C++] كيفية عرض صفيف المخصصة بشكل حيوي في المصحح Visual Studio؟


Answers

هناك طريقتان لعرض البيانات في صفيف m4x4:

float m4x4[16]={
    1.f,0.f,0.f,0.f,
    0.f,2.f,0.f,0.f,
    0.f,0.f,3.f,0.f,
    0.f,0.f,0.f,4.f
};

طريقة واحدة هي مع إطار المراقبة (Debug / Windows / Watch). إضافة ساعة =

m4x4,16

يعرض هذا البيانات في قائمة:

طريقة أخرى هي مع نافذة الذاكرة (Debug / Windows / الذاكرة). حدد عنوان بدء الذاكرة =

m4x4

يعرض هذا البيانات في جدول ، وهو أفضل لمصفوفات ثنائية وثلاثية الأبعاد:

انقر بزر الماوس الأيمن على نافذة الذاكرة لتحديد كيفية تمثيل البيانات الثنائية. تقتصر الاختيارات على الأعداد الصحيحة والعوام وبعض ترميزات النص.

Question

إذا كان لديك صفيف مخصص بشكل ثابت ، يمكن أن يقوم المصحح Visual Studio بسهولة عرض كافة عناصر الصفيف. ومع ذلك ، إذا كان لديك صفيف تم تخصيصه ديناميكيًا ومؤشرًا بمؤشر ، فسيعرض فقط العنصر الأول من المصفوفة عند النقر على + لتوسيعه. هل هناك طريقة سهلة لمعرفة مصحح الأخطاء ، هل تريد إظهار هذه البيانات كصفيف من نوع Foo وحجم X؟




يمكنك العثور على قائمة بالعديد من الأشياء التي يمكنك فعلها باستخدام المتغيرات في نافذة المشاهدة في هذه الأحجار الكريمة في المستندات: MSDN

بالنسبة للمتغير a ، هناك الأشياء التي سبق ذكرها في إجابات أخرى مثل

a,10 
a,su 

ولكن هناك مجموعة كبيرة من المحددات الأخرى للتنسيق والحجم ، مثل:

a,en (shows an enum value by name instead of the number)
a,mb (to show 1 line of 'memory' view right there in the watch window)



إلى عن على،

int **a; //row x col

أضف هذا لمشاهدة

(int(**)[col])a,row



زيارة ثانية:

لنفترض أن لديك مؤشرًا أدناه:

double ** a; // assume 5*10

ثم يمكنك الكتابة أدناه في مشاهدة التصحيح Visual Studio:

(double(*)[10]) a[0],5

والتي ستدفعها إلى مصفوفة مثل أدناه ، ويمكنك عرض جميع المحتويات دفعة واحدة.

double[5][10] a;