Can i pass the row pointer of a 2D character array as a parameter in strtok()?

#include
#include
using namespace std;
int main ()
{
int n, key;
cout << “Enter no of strings and key:” << endl;
cin >> n >> key;
char *buffer[n];
cin.get ();
char c[n][100];
cout << “Enter strings:” << endl;
for (int i = 0; i < n; i++)
{
cout << “Enter " << i + 1 << " string:” << endl;
int j = 0;
c[i][j] = cin.get ();
while (c[i][j] != ‘\n’)
{
j++;
c[i][j] = cin.get ();
}
c[i][j] = ‘\0’;

}

// for(int i=0;i<n;i++)
// cout<<c[i]<<endl;
for (int i = 0; i < n; i++)
{
int k = 1;

  char *ptr = strtok (c[i], ' ');
  while (k != key)
    {
        ptr = strtok (NULL, ' ');
        k++;
	}
  buffer[i] = ptr;
  buffer[strlen (ptr)] = '\0';
}

for (int i = 0; i < n; i++)
cout << buffer[i] << endl;
return 0;

}

Hi @POORVI_SAXENA arrays themselves are pointers only. In a 2d array, yes you can pass 1 row as an argument for strtok