#include <iostream>

using namespace std;
void test(float, int);

int main()
{ 
    const int size=11;
    float a[size];

    test(a, size);

    return 0;
}

void test(float a[], int size)
{
    [....]
}

यह परीक्षण (ए, आकार) की ओर इशारा करता है; लेकिन मैं यह नहीं समझ सकता कि क्या गलत है (मैं कोडिंग भी सीख रहा हूं और सिर्फ सरणियों/भ्रमित के बारे में सीखा)

c++
-4
Fuey500 21 अप्रैल 2016, 23:50
आप फ्लोट के साथ परीक्षण पूर्व-घोषित क्यों करते हैं और फिर इसे फ्लोट [] के साथ कार्यान्वित करते हैं?
 – 
user3458
21 अप्रैल 2016, 23:53
1
आपके पैरामीटर float a[] का वास्तव में मतलब float *a है। क्या आप a को float या float का सूचक बनाना चाहते हैं?
 – 
Keith Thompson
21 अप्रैल 2016, 23:53

3 जवाब

सबसे बढ़िया उत्तर

आपका फ़ंक्शन प्रोटोटाइप void test(float, int); आपके फ़ंक्शन void test(float a[], int size) से मेल नहीं खाता। शीर्ष पर प्रोटोटाइप को void test(float a[], int size); में बदलें (मैं निरंतरता के लिए प्रोटोटाइप में इनपुट चर नाम छोड़ना पसंद करता हूं, लेकिन यह आवश्यक नहीं है)।

5
Ben 21 अप्रैल 2016, 23:57
बहुत - बहुत धन्यवाद!
 – 
Fuey500
21 अप्रैल 2016, 23:57
एफवाईआई, आपको शायद "मेरा कोड काम क्यों नहीं कर रहा है?" डाउनवोट होने से रोकने के लिए अपने प्रश्न के शीर्षक से भाग लें।
 – 
Ben
22 अप्रैल 2016, 00:09

आप शायद लिखना चाहते थे:

void test(float*, int);
// ...
void test(float* a, int size)
{
    [....]
}

जब परीक्षण को सरणी तर्क के साथ बुलाया जाता है, तो सरणी अपने पहले तत्व के सूचक को क्षय हो जाएगी - और इसका आकार खो जाएगा।

2
marcinj 21 अप्रैल 2016, 23:56

परीक्षण आगे की मंदी के लिए गलत पैरामीटर प्रकार।

ये कोशिश करें।

#include <iostream>

using namespace std;
void test(float *, int);

int main()
{ 
    const int size=11;
    float a[size];

    test(a, size);

    return 0;
}

void test(float a[], int size)
{

}
0
JaNL 22 अप्रैल 2016, 00:00