Как вычислить размер указателя по переданным аргументам функции
привет
я пытаюсь получить размер массива указателей после перехода к функции.
но не получается правильно.
загляни в мой код
когда я печатаю размер фруктового массива указателя он дает правильный ответ 48
но когда я печатаю проходящий аргумент ptr2 массив указателей он дает 8
Что я уже пробовал:
#include <stdio.h> #include "string.h" const char *const fruit[]= { [1] ="apple1", [5]= "apple2", [3] ="apple3", [4] ="apple4" }; int total_index(const char *const ptr2[]) { int a=0; a= sizeof(ptr2); printf("size of array of pointers %d\n",a); a= sizeof(fruit) printf("size of array of pointers %d\n",a); return a; } int main() { printf(" indexes %d",total_index(fruit)); return 0; }
KarstenK
одно короткое дополнение: размер указателей зависит только от настроек компилятора, потому что это всего лишь адрес памяти. Объекты или массивы, на которые он указывает, могут отличаться :-O