char arr[50][50] = { {"Hello"}, {"World"} };
You need to understand that a string is an array of chars.
So your code is a list of list of strings which means a list of list of list of chars.
And a string is a zero terminated list of chars.
Try:
char arr[50][50] = { "Hello", "World" };