Редактировать. Можно ли взять вторую функцию и взять в качестве аргумента указатель на элемент после последнего элемента после источника? Пример copy_ptrs (target3, source, source +5)указывая на элемент?
Я включил копию всей моей программы, но то, что я пытаюсь сделать, это использовать две функции: одну с использованием нотации массива, а другую - с использованием указателя указателя, чтобы просто скопировать начальную элементы массива, считанные пользователем. Моя функция указателя не работает, поскольку она не будет печатать копию данных. Я думаю, что мои объявления указателей ошибочны? Мое знание указателей довольно ограничено, но я думаю, что решение так близко. Любая помощь будет большой.
#include <stdio.h>
#define MAX 999
void copy_arr(double ar[], double ar2[], int n);
void copy_ptr(double arr[], double arr2[], int n);
int main()
{
int i, num;
double source[MAX];
double target1[MAX];
double target2[MAX];
printf("\nEnter number of elements to be read into the array: ");
scanf("%d", &num);
printf("\nEnter the values below (press enter after each entry)\n");
for (i = 0; i < num; i++)
{
scanf("%lf", &source[i]);
}
//copy_arr(target1, source, num);
copy_ptr(target2, source, num);
printf("\n\nCopying Complete!\n");
return 0;
}
void copy_arr(double target1[], double source[], int num)
{
int i;
for (i = 0; i < num; i++)
{
target1[i] = source[i];
}
printf("\n***The first function uses array notation to copy the elements***\n");
printf("===================================================================\n");
for (i = 0; i < num; i++)
{
printf("\n Array_Notation_Copy[%d] = %.2lf", i, target1[i]);
}
}
void copy_ptr(double target2[], double source[], int num)
{
int i;
double *p, *q;
p = source;
q = target2;
for (i = 0; i < num; i++)
{
*q = *p;
q++;
p++;
}
q = target 2
printf("\n\n***The second function uses pointer notation to copy the elements***\n");
printf("===================================================================\n");
for(i = 0; i < num; i++)
{
printf("\n Pointer_Notation_Copy[%d] = %.2lf",i, *q++);
}
}
Бинго! Спасибо за помощь! –