Можно ли передать в функцию указатель на константу? - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д