Я бы, наверное, написал что-то вроде ниже:
#include <stdio.h>
int main(){
char* param[5] = {"1", "2", "3", "4", NULL};
int i = 0;
for (i = 0; param[i] ; i++){
printf("%s\n", param[i]);
}
}
Вместо NULL я мог бы использовать 0 или '\ 0', поскольку все они в конце одинаковы (числовое значение 0), но я считаю, что использование макроса захвата NULL лучше всего.
Вы также можете написать param[4] = NULL;
, если это сделано после инициализации, и вы param[4] = '\0';
должны были бы работать (но больше похоже на запутывание, поскольку вы вообще не хотите использовать символ, но указатель NULL)