سؤال

تم تصميم التعليمات البرمجية أدناه لأخذ البايت [] وعدة أشياء أخرى (انظر الكود الذي يعطيه بعيدا).ثم يبني حزمة مع طول معين وإرجاع هذا.مشكلتي هي عندما قرأت في ملف إلى البرنامج الرئيسي، أحتاج إلى المخزن المؤقت لحزمة مخطط البيانات لتكون عدد البايتات المتبقية إلى إرسالها (إذا كان أقل من 512) + 4. هذا هو التعامل مع الحزمة الأخيرة من طلب قراءةمن خادم TFTP.ايم الحصول على مؤشر خارج حدود استثناء على الخط "المخزن المؤقت [Bufferoffset]= البيانات [datauspet]؛".هل يمكن لأي شخص أن يساعدني في فهم سبب حدوث ذلك وما ستكون أفضل طريقة حولها؟

giveacodicetagpre.

هل كانت مفيدة؟

المحلول

لا أرى من أين ألقي نظرة على data.length. هل من الممكن أن تكون Data.Length أكبر من Sourbytes؟إذا كان الأمر كذلك، فيجب أن يكون حلقةك أكثر من sentytes، وليس على البيانات.

أساسا، يبدو منطقك لتحديد طول المخزن المؤقت من المخزن المؤقت مطلقا بشكل مثير للريبة من حجم Sustytytes.

نصائح أخرى

هذا هو رمز إعادة شحنها إلى نموذج مدمج:

giveacodicetagpre.

الآن من الواضح تماما ما يحدث.لا يعتمد تعبيرك لحجم المخزن المؤقت مباشرة على data.length، لذلك يمكن أن تكمن المشكلة في قيم الحجج <قوية> إلى الطريقة، تماما كما يمكن أن تكمن في الكود نفسه.تكون القاضي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top