why isn't the size of an array sent as a parameter the same as within main?
#include <stdio.h>
void PrintSize(int p_someArray[10]);
int main () {
int myArray[10];
printf("%d\n", sizeof(myArray)); /* as expected 40 */
PrintSize(myArray);/* prints 4 not 40 */
}
void PrintSize(int p_someArray[10]){
printf("%d\n", sizeof(p_someArray));
}
Answers;-
No, array-type is implicitly converted into pointer type when you pass it in to a function.
So,
void PrintSize(int p_someArray[10]){
printf("%zu\n", sizeof(p_someArray));
}
and
void PrintSize(int *p_someArray){
printf("%zu\n", sizeof(p_someArray));
}
0 comments:
Post a Comment
Don't Forget to comment