Можно ли передать в функцию указатель на константу? - C (СИ)
Формулировка задачи:
Задача: Напишите функцию обнуления массива. В функцию необходимо передавать указатель на массив и его размер.
Проблема: Указатель на константу (строка 22) передаваться не хочет. Вопрос: можно/нужно ли в принципе и если да то как передавать указатель на константу в функцию? Решение №1 (не работает):#include <stdio.h> #include <conio.h> #include <locale.h> #include <time.h> #include <stdlib.h> void zero (int*,int*); int main () { const int n = 10; int i, x[n], m; setlocale (0, "russian"); srand (time(NULL)); // m=n; for (i=0;i<n;i++) { x[i]=rand ()%100; printf ("x[%d]=%d\n", i, x[i]); } puts (""); zero (x,&n); for (i=0;i<n;i++) { printf ("x[%d]=%d\n", i, x[i]); } getch (); return 0; } void zero (int *ptr_mas, int *ptr_r) //функция обнуления массива { int i; for (i=0;i<*ptr_r;i++) { ptr_mas[i]=0; } }
#include <stdio.h> #include <conio.h> #include <locale.h> #include <time.h> #include <stdlib.h> void zero (int*,int*); int main () { const int n = 10; int i, x[n], m; setlocale (0, "russian"); srand (time(NULL)); m=n; //костыль for (i=0;i<n;i++) { x[i]=rand ()%100; printf ("x[%d]=%d\n", i, x[i]); } puts (""); zero (x,&m); //костыль for (i=0;i<n;i++) { printf ("x[%d]=%d\n", i, x[i]); } getch (); return 0; } void zero (int *ptr_mas, int *ptr_r) //функция обнуления массива { int i; for (i=0;i<*ptr_r;i++) { ptr_mas[i]=0; } }
Решение задачи: «Можно ли передать в функцию указатель на константу?»
textual
Листинг программы
void zero (int* ptr_mas, const int* ptr_r)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д