2015-01-19 14 views
-1

Я инициализировал массив с именем createAnArray с размером 7. Я создал метод для заполнения createAnArray целыми числами. Как использовать/вызывать значения createAnArray в другой функции? Должен ли я создать другой цикл for, а затем вызвать createAnArray [i]? Я попробовал называть его другой функцией в цикле for, но он продолжает давать мне MEMORY LOCATION, когда я его распечатываю. Я пытаюсь сравнить индекс массива, который я создал с тем, который я сохранил в indexThatMatched. Любая помощь будет отличной. Спасибо, парни.Как мне создать массив, который я создал ранее?

#include <iostream> 

using namespace std; 
void printArray(int pinArray[], int arraysize); 
void getArray(int anArray[], int arraysize); 

int numToMatch[4] = {1,2,3,4}; 
int arrayOfNumbers[7] = {0, 1, 2, 3, 4, 5, 6}; 
int indexThatMatched[4]; // Want to add to this Array. 
int createAnArray[7]; 
int main() 
{ 
    getArray(createAnArray, 7); 
} 

void findMatch() 
{ 
    for(int i = 0; i < 4; i++) 
    { 
     for(int j = 0; j < 7; j++) 
     { 
      indexThatMatched[i] = -1; 
      if(numToMatch[i] == arrayOfNumbers[j]) // 
      { 
        cout << "Num " << numToMatch[i] << " "; 
        cout << "matches index " << arrayOfNumbers[j]; 
        cout << endl; 
        indexThatMatched[i] = j; 


      } 
     } 
    } 
     printArray(indexThatMatched, 4); 
} 
void getArray(int anArray[], int arraysize) 
{ 
    for(int i = 0; i <= 7; i++) 
    { 
     anArray[i] = i; 
    } 
    printArray(anArray, 7); 
} 

void printArray(int anArray[], int arraysize) 
{ 
    for(int i = 0; i < arraysize; i++) 
    { 
     cout << anArray[i] << " "; 
    } 
} 
+0

Если вы создаете глобальный массив, не нужно передавать его как аргумент функции, приятель. И я проверил эту программу. Нет «Ошибка памяти». – shauryachats

+0

Это неверно: 'for (int i = 0; i <= 7; i ++)' должно быть '<7', но вы передавали длину массива в качестве параметра, поэтому лучше использовать его:' for (int i = 0; i Galik

ответ

0

В функции void getArray(int anArray[], int arraysize), ниже цикл должен работать только размер массива, который 7 но,

for(int i = 0; i <= 7; i++) 

вызывает переполнение буфера.

Во-вторых, когда ваш массив объявлен глобальным, в точке вы можете ссылаться на него, который не нуждается ни в каком экземпляре, созданном для каждой функции, где вы его используете. Пожалуйста, посмотрите на Global Variable

Смежные вопросы