Если размер matrix
не нужно изменять с помощью функции, вы можете объявить int
s, хранящие длину string
, как const
. Это позволяет создавать многомерный массив, который может варьироваться по размеру для каждого вызова функции, но сохраняет постоянный размер в течение всей функции.
#include <iostream>
#include <string>
using namespace std;
int someFunc(string, string);
int someFunc(string s1, string s2)
{
const int x = s1.length();
const int y = s2.length();
int matrix[x][y];
int result=0;
for(int i=0;i<x;i++)
for(int j=0;j<y;j++)
matrix[i][j]=i*j;
for(int i=0;i<x;i++)
for(int j=0;j<y;j++)
result+=matrix[i][j];
return result;
}
int main()
{
string s1 = "fubar";
string s2 = "somethingelse";
cout<<someFunc(s1,s2)<<endl;
}
РЕДАКТИРОВАТЬ: При прочтении одного из других ответов, опубликованных в то время, когда я писал свой, я полагаю, вы должны использовать const size_t
вместо const int
. Извините, мой C ++ немного ржавый.