ভিজ্যুয়াল স্টুডিও ডিবাগারে গতিশীলভাবে বরাদ্দ হওয়া অ্যারে কীভাবে প্রদর্শন করবেন?


144

আপনার যদি স্ট্যাটিকালি বরাদ্দ অ্যারে থাকে তবে ভিজ্যুয়াল স্টুডিও ডিবাগার সহজেই অ্যারের সমস্ত উপাদান প্রদর্শন করতে পারে। তবে, যদি আপনার কাছে অ্যারেটি গতিশীলভাবে বরাদ্দ থাকে এবং কোনও পয়েন্টার দ্বারা নির্দেশিত হয় তবে এটি প্রসারিত করতে + ক্লিক করলেই কেবল অ্যারের প্রথম উপাদানটি প্রদর্শিত হবে। ডিবাগারকে বলার কি কোনও সহজ উপায় আছে, আমাকে ফু এবং আকারের এক্স টাইপের অ্যারে হিসাবে এই ডেটাটি দেখান?

উত্তর:


196

হ্যাঁ, সরল বলো তোমার আছে

char *a = new char[10];

ডিবাগারে লেখা:

a,10

আপনাকে সামগ্রীটি এমনভাবে দেখায় যেন এটি একটি অ্যারে ছিল।


10
এটি একটি দুর্দান্ত কৌশল, তবে যদি আপনার পয়েন্টারটি কাঠামোর একটি বিন্যাসে নির্দেশ করে তবে আমি দেখতে পেয়েছি যে ঘড়ির উইন্ডোতে "এ, 10" দিয়ে প্রসারিত পৃথক উপাদানগুলি নিজেরাই প্রসারণযোগ্য নয়। মানে আপনি এই পদ্ধতিটি ব্যবহার করে অ্যারের তৃতীয় উপাদানটি খনন করতে পারবেন না। এটাই কি এমন কিছু যা কাটিয়ে উঠতে পারে?
স্যারপেন্টার

@ সিরপেন্টর আমারও একই সমস্যা আছে। আপনি কি সমাধান খুঁজে পেয়েছেন?
বেকো

@ becko - অস্বীকৃতিপূর্ণ। এটা হতাশাজনক.
স্যারপেন্টর

বাহ, কাঠামোগুলির জন্য এটি অকেজো, আপনি কেবল মূল্যগুলির
চেয়ে বারগুলির

2
নতুনদের জন্য: আপনি যদি "একটি" পরিবর্তনশীল নির্বাচন করেন, ডান ক্লিক করুন এবং ঘড়ির তালিকায় যুক্ত করুন (পরিদর্শন করুন), আপনি যদি পর্যবেক্ষণকৃত মানগুলির তালিকায় ডি ডিবাগার ভিউটি খোলেন (আমি এখনই উইন্ডোর নামটি খুঁজে পাই না), আপনি "এ" ডাবল ক্লিক করতে পারেন এবং এটির নাম "এ, এক্স" করতে পারেন যেখানে এক্স আইটেমের সংখ্যা। আপনি এখন সমস্ত মান দেখতে পাবেন।
ডার্কগ্যাজে

33

একটি অ্যারে এম 4x4 এ ডেটা দেখার জন্য দুটি পদ্ধতি রয়েছে:

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
};

একটি উপায় হ'ল একটি ওয়াচ উইন্ডো (ডিবাগ / উইন্ডোজ / ঘড়ি) দিয়ে। ঘড়ি যোগ করুন =

m4x4,16

এটি একটি তালিকায় ডেটা প্রদর্শন করে:

এখানে চিত্র বর্ণনা লিখুন

আর একটি উপায় মেমরি উইন্ডো (ডিবাগ / উইন্ডোজ / মেমরি) সহ। একটি মেমরি শুরু ঠিকানা উল্লেখ করুন =

m4x4

এটি একটি সারণীতে ডেটা প্রদর্শন করে, যা দ্বি এবং ত্রিমাত্রিক ম্যাট্রিক্সের জন্য ভাল:

এখানে চিত্র বর্ণনা লিখুন

বাইনারি ডেটা কীভাবে ভিজ্যুয়ালাইজড হয় তা নির্ধারণ করতে মেমরি উইন্ডোতে ডান ক্লিক করুন। পছন্দগুলি পূর্ণসংখ্যা, ভাসমান এবং কিছু পাঠ্য এনকোডিংগুলিতে সীমাবদ্ধ।


21

একটি ওয়াচ উইন্ডোতে অ্যারের নামের পরে কমা যুক্ত করুন এবং আপনি যে পরিমাণ আইটেম প্রদর্শন করতে চান।


10

একটি দর্শন:

ধরে নেওয়া যাক আপনার নীচের পয়েন্টার রয়েছে:

double ** a; // assume 5*10

তারপরে আপনি ভিজ্যুয়াল স্টুডিও ডিবাগ ওয়াচে নীচে লিখতে পারেন:

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

যা এটি নীচের মতো একটি অ্যারেতে ফেলে দেবে এবং আপনি সমস্ত কন্টেন্ট একসাথে দেখতে পারবেন।

double[5][10] a;

5

জন্য

int **a; //row x col

এটি দেখার জন্য যোগ করুন

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

দয়া করে আমাকে বলুন, আমি "ঘড়ি" খুঁজে পাচ্ছি না। এটা কোথায়?
ডিম

4

এটি করার আরেকটি উপায় এখানে এমএসডিএন-তে নির্দিষ্ট করা আছে ।

সংক্ষেপে, আপনি বিভিন্ন ধরণের স্ট্রিং হিসাবে একটি অক্ষর অ্যারে প্রদর্শন করতে পারেন। আপনি যদি অ্যারে হিসাবে ঘোষণা করেন তবে:

char *a = new char[10];

আপনি নিম্নলিখিতটি দিয়ে ওয়াচ উইন্ডোটিতে একটি ইউনিকোড স্ট্রিং হিসাবে মুদ্রণ করতে পারেন:

a,su

সম্ভাব্য বিভিন্ন রূপান্তরগুলির জন্য এমএসডিএন পৃষ্ঠায় সারণীগুলি দেখুন যেহেতু বেশ কয়েকটি রয়েছে। অ্যারেতে পৃথক আইটেমগুলি মুদ্রণের জন্য বিভিন্ন স্ট্রিংয়ের বিভিন্ন রূপ, রূপগুলি etc.


1
আপনি যে এমএসডিএন লিঙ্কটি দিয়েছেন তা থেকে - a,[10]স্বতন্ত্র উপাদানগুলি আপনাকে দেখতে দেয় যাতে সেগুলি নিজেরাই প্রসারিত হয়, এমনকি যদি আপনার কাছে জটিল ডেটা টাইপের ক্রেরি থাকে।
এলটিহোড

1

এমএফসি অ্যারে (ক্রে, সিএসট্রিংআরে, ...) এর টিপ # 4 এর পরবর্তী লিঙ্কটি অনুসরণ করে

http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De

উদাহরণস্বরূপ "CArray pArray" এর জন্য ওয়াচ উইন্ডোতে যুক্ত করুন

     pArray.m_pData,5 

প্রথম 5 উপাদান দেখতে।

যদি পিআরএ একটি দ্বিমাত্রিক কেরি হয় তবে আপনি পরবর্তী সিনট্যাক্স ব্যবহার করে দ্বিতীয় মাত্রার যে কোনও উপাদানকে দেখতে পাবেন:

     pArray.m_pData[x].m_pData,y

1

ডকসটিতে এই রত্নটিতে ওয়াচ উইন্ডোতে আপনি ভেরিয়েবলের সাথে করতে পারেন এমন অনেকগুলি জিনিসের একটি তালিকা পেতে পারেন: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx

ভেরিয়েবল এ এর ​​জন্য অন্যান্য উত্তরগুলিতে ইতিমধ্যে উল্লিখিত জিনিসগুলি রয়েছে

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)

0

আমি এটি একটি বহুমাত্রিক অ্যারে ব্যবহার করার উপায় খুঁজে পাইনি। তবে আপনি কমপক্ষে (যদি আপনি নিজের পছন্দসই প্রবেশের সূচকটি জানেন) নির্দিষ্ট মানটিতে একটি ঘড়ি যুক্ত করতে পারেন। কেবল সূচক-অপারেটর ব্যবহার করুন।

কারেন্ট নামের একটি অ্যারের জন্য, যার ভিতরে অ্যারিবস নামে একটি অ্যারে রয়েছে, যার ভিতরে অ্যাপ্রিভ নামে একটি অ্যারে রয়েছে, যদি আপনি 26 অবস্থান করতে চান তবে এটি দেখতে এমন হওয়া উচিত:

((*((*current).Attribs)).Attrib)[26]

আপনি একটি অফসেটও ব্যবহার করতে পারেন

((*((*current).Attribs)).Attrib)+25

নে "পরবর্তী" 25 টি উপাদান প্রদর্শন করবে। (আমি VS2008 ব্যবহার করছি, এটি সর্বোচ্চ 25 টি উপাদান দেখায়)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.