Why this code shows warning? In C | SoloLearn: Learn to code for FREE!

+1

Why this code shows warning? In C

I can't able to understand,the reason behind the warning, displayed by the console.... https://code.sololearn.com/cUWwDo18D45h/?ref=app

11/26/2020 2:47:45 PM

Yogeshwaran

+4

a[5][7] is an array of 5 arrays You can refer to the first one like that: &a[0][0] That is a pointer to the first element of the first array, or even like that: a[0] because the name of an array is a pointer to it's first element. If you write &a[0] you have a pointer to the first element of your array of arrays, i.e. a pointer to a pointer to char. But %s is expecting just a pointer to char

+3

+2

scanf("%s") needs a memory address. a[0] is a variable that holds a memory address a[0] gives a value, that value is the memory address of your array &a[0] gives a memory address, the memory address of a[0]. So, scanf("%s", a[0]) puts %s in the array scanf("%s", &a[0]) puts the %s in a variable that is supposed to hold a memory address, not %s So it gives you error

+1

Thank you very much Davide π

+1

You are welcome π€

+1

a is the name of the 2D array a[0] is the name of the first array of the 2D array Since an array name is a pointer to its first element, a = &a[0] and a[0] = &a[0][0] scanf("%d", a); is the same of: scanf("%d", &a[0]); You can't do that, a is a pointer to a pointer to int, but %d expects a pointer to int what you can do is scanf("%d", a[0]); that is like: scanf("%d", &a[0][0]);

+1

Thank you very much Davide ππ

+1

π€

0

Thank you very much Angelo π But can you tell me,what is the meaning of warning, displayed in console....

0

Thank you Angelo π

0

Davide and Angelo ,I have a another doubtπCan you tell me , what does the "a" indicates in this below function...... I mean,it point's to,arrays which first element? scanf("%d",a);//in two dimensional array And also tell me difference between a[0] && a in two dimensional array.....