الانتقال إلى المحتوى الرئيسي

كيفية إرجاع مصفوفة ثنائية الأبعاد من وظيفة ج: طريقة بسيطة وموثوقة

قد يكون استخدام المصفوفات ثنائية الأبعاد في لغة البرمجة سي أمرا صعبا للغاية ، خاصة عند العمل مع الوظائف. ومع ذلك ، هناك طريقة بسيطة وموثوقة لإرجاع مصفوفة ثنائية الأبعاد من وظيفة.

أولا ، تحتاج إلى تحديد وظيفة ستعيد مصفوفة ثنائية الأبعاد. للقيام بذلك ، يمكنك استخدام مؤشر إلى مؤشر ، أي "إنت**".

بعد ذلك ، داخل الوظيفة ، يمكننا تخصيص ذاكرة لمصفوفة ثنائية الأبعاد باستخدام وظيفة "مالوك" وتعبئتها بالبيانات. بعد ذلك ، يمكننا إرجاع مصفوفة ثنائية الأبعاد من الوظيفة.

  1. كثافة العمليات الرئيسية () {
  2. إنت * * صفيف = كريتيراي(3 ، 3);
  3. // مزيد من العمل مع مصفوفة ثنائية الأبعاد
  4. // ...

العودة 0;

}

وبالتالي ، يمكننا ببساطة وبشكل موثوق إرجاع مصفوفة ثنائية الأبعاد من دالة في لغة البرمجة ج.

كيفية إرجاع مصفوفة ثنائية الأبعاد من دالة ج

طريقة سهلة لإرجاع مصفوفة ثنائية الأبعاد من دالة ج

كيفية جعل وظيفة ج إرجاع صفيف ثنائي الأبعاد

أفضل طريقة لإرجاع مصفوفة ثنائية الأبعاد من دالة ج

كيفية إرجاع صفيف ثنائي الأبعاد من وظيفة ج: طريقة مجربة

نصائح لإرجاع مصفوفة ثنائية الأبعاد من دالة ج

سؤال وجواب

كيف يمكنني إرجاع مجموعة ثنائية الأبعاد من وظيفة?

كيف يمكنني إرجاع مصفوفة ثنائية الأبعاد من وظيفة بطريقة أكثر موثوقية?

كيف يمكنني استخدام مؤشر إلى مؤشر لإرجاع مصفوفة ثنائية الأبعاد من وظيفة في ج?

كيف يمكنني تخصيص حيوي الذاكرة لمجموعة ثنائية الأبعاد في ج?

كيفية إرجاع مصفوفة ثنائية الأبعاد من دالة ج

قد تبدو إعادة مصفوفة ثنائية الأبعاد من دالة في ج مهمة صعبة ، نظرا لأن ج لا يدعم عودة المصفوفة المباشرة. ومع ذلك ، هناك طرق بسيطة وموثوقة لحل هذه المشكلة.

الطريقة الأولى هي استخدام مؤشر إلى مؤشر. يتم إنشاء مؤشر لمؤشر نوع عنصر المصفوفة الذي سيتم حفظ المصفوفة ثنائية الأبعاد فيه. بعد ذلك ، يتم إرجاع هذا المؤشر من الوظيفة.

مثال على الكود:

"'ج

إنت * * ريتيراراي (إنت الصفوف ، إنت كولز) {

إنت * * أر = (إنت**)مالوك (الصفوف * سيزوف (إنت*));

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

ر [أنا] = (إنت*)مالوك(كولز * سيزوف (إنت));

إلى عن على (الباحث ي = 0 ؛ ي < الأعمدة ؛ ي j) {

[أنا] [ي] = أنا * كولز + ي;

}

}

عودة آر;

}

كثافة العمليات الرئيسية () {

الصفوف كثافة العمليات = 3;

كثافة العمليات الأعمدة = 3;

إنت * * آر = ريتيراراي (الصفوف ، كولز);

// إخراج مصفوفة ثنائية الأبعاد

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

إلى عن على (الباحث ي = 0 ؛ ي < الأعمدة ؛ ي j) {

برينتف ("٪د " ، أر [ط] [ي]);

}

برينتف("

");

}

// تحرير الذاكرة

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

مجانا(أر[أنا]);

}

مجانا;

العودة 0;

}

«`

الطريقة الثانية هي تحديد بنية تحتوي على مؤشر إلى مصفوفة ثنائية الأبعاد وأبعادها. ثم يتم إرجاع الهيكل من الوظيفة.

Пример кода:

"'ج

اكتببنية الدفاع {

إنت * * آر;

الصفوف كثافة العمليات;

كثافة العمليات كولز;

} صفيف;

مجموعة ريتيتاراي (إنت الصفوف ، إنت كولز) {

نتيجة الصفيف;

النتيجة.أر = (إنت**)مالوك (الصفوف * سيزوف (إنت*));

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

النتيجة.ر [أنا] = (إنت*)مالوك(كولز * سيزوف (إنت));

إلى عن على (الباحث ي = 0 ؛ ي < الأعمدة ؛ ي j) {

النتيجة.[أنا] [ي] = أنا * كولز + ي;

}

}

النتيجة.الصفوف = الصفوف;

النتيجة.كولز = كولز;

نتيجة الإرجاع;

}

كثافة العمليات الرئيسية () {

الصفوف كثافة العمليات = 3;

كثافة العمليات الأعمدة = 3;

مجموعة آر = ريتيتاراي (الصفوف ، كولز);

// Вывод двумерного массива

إلى عن على (الباحث الأول = 0; أنا < آر.الصفوف ؛ أنا {)

إلى عن على (الباحث ي = 0; ي < آر.كولز ؛ ي j) {

برينتف ("٪د " ، آر.[ط][ي]);

}

برينتف("

");

}

// تحرير الذاكرة

إلى عن على (الباحث الأول = 0; أنا < آر.الصفوف ؛ أنا {)

حر (آر.[ط]);

}

حر (آر.آر آر);

العودة 0;

}

«`

تسمح لك كلتا الطريقتين بإرجاع مصفوفة ثنائية الأبعاد من دالة في لغة سي. يعتمد اختيار الطريقة على تفضيلاتك ومتطلبات مشروعك.

طريقة سهلة لإرجاع مصفوفة ثنائية الأبعاد من دالة ج

في بعض الأحيان في البرمجة يصبح من الضروري إرجاع مصفوفة ثنائية الأبعاد من دالة في لغة ج. في هذه المقالة ، سنلقي نظرة على طريقة بسيطة لحل هذه المشكلة.

أولا ، دعنا نعلن دالة ستعيد مصفوفة ثنائية الأبعاد:

إنت * * ريتيراراي (إنت الصفوف ، إنت كولز) {

إنت * * أر = (إنت**)مالوك (الصفوف * سيزوف (إنت*));

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

ر [أنا] = (إنت*)مالوك(كولز * سيزوف (إنت));

}

عودة آر;

}

في هذه الوظيفة ، نقوم أولا بتخصيص ذاكرة لمجموعة من المؤشرات للسلاسل ، ثم نخصص لكل صف ذاكرة لمجموعة من العناصر.

بعد ذلك ، يمكننا استخدام هذه الوظيفة لإنشاء مصفوفة ثنائية الأبعاد.:

كثافة العمليات الرئيسية () {

الصفوف كثافة العمليات = 3;

كثافة العمليات الأعمدة = 4;

إنت * * صفيف = ريتيراراي (الصفوف ، كولز);

// ملء المصفوفة

مع عدد كثافة العمليات = 0 القيم;

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

إلى عن على (الباحث ي = 0 ؛ ي < الأعمدة ؛ ي j) {

صفيف [أنا] [ي] = العد count;

}

    ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

في هذا المثال ، نقوم بإنشاء مصفوفة 3 * 4 ، ونملأها بقيم من 0 إلى 11 ونعرضها على الشاشة. ثم نقوم بتحرير الذاكرة المخصصة للمصفوفة.

الآن نحن نعرف كم هو سهل للعودة صفيف ثنائي الأبعاد من وظيفة ج. تتيح لك هذه الطريقة إنشاء واستخدام صفائف ثنائية الأبعاد في التعليمات البرمجية الخاصة بك.

كيفية جعل وظيفة ج إرجاع صفيف ثنائي الأبعاد

بعض لغات البرمجة ، مثل ج ، لا تحتوي على دعم مدمج لإعادة المصفوفات ثنائية الأبعاد من الوظائف. ومع ذلك ، هناك عدة طرق للتحايل على هذا القيد وإرجاع مصفوفة ثنائية الأبعاد من الوظيفة.

هنا هو وسيلة بسيطة وموثوق بها التي يمكن استخدامها في اللغة ج:

حدد نوع البيانات للمصفوفة ثنائية الأبعاد التي تريد إرجاعها من الوظيفة. على سبيل المثال:

اكتبإف إنت اثنينأبعاد الصف [صف_حجم] [عمود_حجم];

تحديد وظيفة من شأنها أن تعود صفيف ثنائي الأبعاد:

اثنينأبعاد * ج () {

اثنان من الدرجة الثانية * أر = مالوك(حجم(اثنان من الدرجة الثانية));

// املأ المصفوفة بالبيانات

عودة آر;

}

في هذا المثال ، ستعيد الدالة ج () مؤشرا إلى مصفوفة ثنائية الأبعاد من النوع الثاني ثنائي الأبعاد.

استخدم وظيفة ج () للحصول على مصفوفة ثنائية الأبعاد:

اثنينأبعاد * مياراي = ج ();

الآن لديك حق الوصول إلى مصفوفة ثنائية الأبعاد مياراي ، الذي تم إنشاؤه في وظيفة ج ().

من المهم أن تتذكر أنه يجب تخصيص المصفوفة ثنائية الأبعاد التي تم إرجاعها في الذاكرة الديناميكية باستخدام وظيفة مالوك() أو وظائف مماثلة. أيضا ، لا تنس تحرير الذاكرة المخصصة للمصفوفة عندما لا تكون هناك حاجة إليها.

أفضل طريقة لإرجاع مصفوفة ثنائية الأبعاد من دالة ج

قد يكون من الصعب بعض الشيء إرجاع مصفوفة ثنائية الأبعاد من دالة في ج ، لأن لغة ج لا تدعم عودة المصفوفة المباشرة. ومع ذلك ، هناك طرق مختلفة لتحقيق هذا الهدف.

واحدة من أفضل الطرق لإرجاع مصفوفة ثنائية الأبعاد من وظيفة في ج هو استخدام تخصيص الذاكرة الديناميكية للمصفوفة داخل الوظيفة ، ثم إرجاع مؤشر إلى تلك المصفوفة. نموذج التعليمات البرمجية:

# تشمل

# تشمل

إنت * * كريتيراي (إنت الصفوف ، الأعمدة إنت) {

إنت * * أر = مالوك (الصفوف * سيزوف (إنت*));

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

أر [أنا] = مالوك (أعمدة * حجم (إنت));

}

عودة آر;

}

باطلة فيلاراي (إنت **أر ، إنت الصفوف ، إنت الأعمدة) {

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

إلى عن على (الباحث ي = 0 ؛ ي < الأعمدة ؛ ي++) {

[أنا] [ي] = أنا + ي;

}

}

}

فواد برينتراي (إنت **أر ، إنت الصفوف ، إنت الأعمدة) {

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

إلى عن على (الباحث ي = 0 ؛ ي < الأعمدة ؛ ي++) {

برينتف ("٪د " ، أر [ط] [ي]);

}

برينتف("

  1. ");
  2. }
  3. }
  4. فري فراي (إنت * * آر ، إنت الصفوف) {

ل (إنت أنا = 0 ؛ أنا < الصفوف ؛ أنا i) {

مجانا(أر[أنا]);

}

مجانا;

}

كثافة العمليات الرئيسية () {

الصفوف كثافة العمليات = 3;

الأعمدة كثافة العمليات = 4;

إنت * * أر = كريتيراي (الصفوف والأعمدة);

فيلاراي (آر ، الصفوف ، الأعمدة);

برينتف ("صفيف:

");

برينتراي(آر ، الصفوف ، الأعمدة);

فرايراي (آر ، الصفوف);

العودة 0;

}

يوضح هذا المثال رمز وظيفة كريتاراي () ، الذي يخصص حيوي الذاكرة لمجموعة ثنائية الأبعاد ، وظيفة فيلاراي () ، الذي يملأ مجموعة مع البيانات ، وظيفة برينتراي () ، الذي يخرج مجموعة إلى الشاشة ، و وظيفة فريراي () ، الذي يحرر الذاكرة المخصصة لمجموعة.

هناك طرق أخرى لإرجاع مصفوفة ثنائية الأبعاد من دالة في ج ، مثل استخدام المؤشرات إلى المصفوفات أو تمرير مصفوفة كمعلمة وتغييرها داخل دالة. ومع ذلك ، فإن تخصيص الذاكرة ديناميكيا وإعادة المؤشر إلى صفيف هو الطريقة الأكثر عملية وملاءمة.

كيفية إرجاع صفيف ثنائي الأبعاد من وظيفة ج: طريقة مجربة

في ال ج لغة البرمجة ، يمكن أن يكون إرجاع مصفوفة ثنائية الأبعاد من دالة أمرا معقدا بعض الشيء. ومع ذلك ، هناك طريقة مجربة لهذا ، والتي تضمن إرجاع المصفوفة بشكل صحيح.

خطوات لإرجاع مصفوفة ثنائية الأبعاد من دالة ج:

تحديد نوع المؤشر: يمكنك إرجاع مصفوفة ثنائية الأبعاد من دالة عن طريق الإعلان عن نوع المؤشر الذي يشير إلى المصفوفة. على سبيل المثال ، إذا كان صفيف ثنائي الأبعاد من نوع إنت ، ثم نوع المؤشر سيكون إنت **.

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

املأ المصفوفة بالقيم: يمكن ملء قيم المصفوفة داخل دالة باستخدام الحلقات ومشغل التعيين.

إرجاع المصفوفة: أعد المؤشر إلى المصفوفة من الوظيفة.

Пример кода, демонстрирующий повернение двумерного массива из функции C:

#include

#include

    2 د كريتيراي (إنت الصفوف ، إنت كولز) {

    أراي2د آر آر;

    آر.التاريخ = (كثافة العمليات*) مالوك (ريال عماني * كولز * حجم (كثافة العمليات));

    arr.RO / ق = ريال عماني / ق;