notes/education/software development/ECE1400/Chapter 11 Exercises.md
2024-11-01 13:28:59 -06:00

929 B

  1. If i is a variable and p points to i, which of the following expressions are aliases for i?

a. *p g. *&i

  1. If i is an int variable and p and q are pointers to int, which of the following assignments are legal?

e. p = *&q; f. p = q; i. *p = *q

  1. The following function supposedly computes the sum and average of the numbers in the array a, which has length n. avg and sum point to the variables that the function should modify, unfortunately the function contains several errors, find and correct them.
void avg_sum(double a[], int n, double *avg, double *sum)
{
int i;

// This was assigning a pointer to a float,
// the dereference operator was missing
*sum = 0.0;
for (i = 0; i < n; i++)
	// This wasn't increasing the value
	// `sum` points to, it was modifying the address stored in the pointer
	(*sum) += a[i];
// Missing dereference operators
*avg = *sum / n;

}