c - 2-D character array -


#include<stdio.h> int main() { char str[3][10]={                     "vipul",                     "ss",                     "shreya" }; 

why won't work:

printf("%s",str[1][0]); 

if want access str whereas

printf("%s",&str[1][0]); 

or perfectly

printf("%s",str[1]); 

can explain ? why first code giving error

prog.c: in function ‘main’: prog.c:9:5: error: format ‘%s’ expects argument of type ‘char *’,                     argument 2 has type ‘int’ [-   werror=format] cc1: warnings being treated errors 

why argument has type int?

printf("%s",str[1][0]); 

the problem in line. when %s format specifier, printf() expects pointer null terminated string. whereas str[1][0] char (specifically first s in "ss"), promoted int (default argument promotions). that's error message says.


Comments