Write a C language function named count that takes a void pointer and int parameter, representing a memory buffer, and a uint8_t parameter representing a byte, and returns an int result. The returned result should be the number of occurrences of the byte in the bufer. For example if the buffer p pointed to the bytes 01 12 01 23, then count(p, 4, 0x01) should return 2.

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter8: Advanced Method Concepts
Section: Chapter Questions
Problem 7RQ
icon
Related questions
Question

Write a C language function named count that takes a void pointer and int parameter, representing a memory buffer, and a uint8_t parameter representing a byte, and returns an int result. The returned result should be the number of occurrences of the byte in the bufer. For example if the buffer p pointed to the bytes 01 12 01 23, then count(p, 4, 0x01) should return 2.

Expert Solution
Step 1

Program code:

#include <stdio.h>
#include <stdint.h>

int count(void *buf, int buf_bytes, uint8_t x)
{
// convert the void pointer to the char pointer
char* pChar=(char*)buf;
 
// Take the count and initialze it to ZERO
int count=0;
// start a loop
for(int i=0;i<buf_bytes;i++)
{
// Check if the value is matched
if(pChar[i]==x)
count++; // increase the count
}
// return the count here to the main function
return count;
}
int main()
{
unsignedchar buffer[] = { 0x01, 0x12, 0x01, 0x23 };
printf("Result = %d\n", count(buffer,4,0x01));

return0;
}
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Knowledge Booster
Functions
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,