c++ - character arrays and pointers basic confusion -
i beginner in pointers. after completing integer arrays , pointers shifted character arrays , pointers. expected same results weird.
int main() { char chararray[20]="char array"; void printarray(char *); void printarraydirect(char * ); printf("passing chararray funtion printarray\n"); printarray(chararray); printf("printing directly c in printarraydirect function"); printarraydirect(chararray); return 0; } void printarray(char *c){ int i=0; //while(c[i]!= ' ')-----------------------> checks empty space while(c[i]!='\0') { printf("%c",c[i]); i++; } printf("\n"); } void printarraydirect(char * c){ printf("printing c-------------->"); printf("%s\n",c); int i=0; printf("printing c[i]-------------->\n"); // shows error here , if why didnt show me error in printarray function. , why didnt print whole array when printed c in printarray function.. printf("%s\n" c[i]); }
first of all, you're missing comma on line printf("%s\n" c[i]);. secondly, c[i] single char (the element type of array), hence %s formatting incorrect - should %c print single character. or if wish print entire string point onwards, need pass address of element (&c[i]), in case same c since i zero.
Comments
Post a Comment