2013-03-12 5 views
1

Я пытаюсь передать массив строк 2d и single dimmension в функцию, но не работает.Передача 2D-массива строк функции в C++

мои массивы:

string 2Darray[100][100]; 
    String 1Darray[100]; 

Теперь функция:

void check(string temp2D[100][100], string temp1D[100]); 

Когда я называю это:

check(2Darray,1Darray); 

Я пробовал другие способы объявления все они надевают» т работы. Заранее благодарим за любые ответы!

+2

ваш 1Darray кажется 2D мне – zzk

+0

строки 1Darray, будучи 1D массив имеет два набора показателей, в своей декларации ?? –

+0

Вы не можете запускать идентификаторы с номерами в C++, то есть '2Darray' должен быть' twoDarray' и т. Д. –

ответ

3

Вы могли бы изменить, чтобы принять ссылки:

void check(string (&temp2D)[100][100], string (&temp1D)[100]); 

или указатели:

void check(std::string temp2D[][100], std::string temp1D[]){} 

который является таким же, как следующий раз другой синтаксис:

void check(std::string (*temp2D)[100], std::string* temp1D){} 

Кроме того, вы не можете начинать имена переменных с номерами, 2Darray и т. д. является ошибкой компилятора.

Вот полный рабочий пример:

#include <string> 

void check(std::string (&temp2D)[100][100], std::string (&temp1D)[100]){} 

int main() 
{ 
    std::string twoDarray[100][100]; 
    std::string oneDarray[100]; 
    check(twoDarray,oneDarray); 
} 
+0

Ahh очень приятно, что сработало! Огромное спасибо. – Andy

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