You're working on a C program that needs to manipulate and process data about a list of products in a store. Each product has several attributes like name, price, and quantity. What approach would you take to store and process this data efficiently?
- 2D Array
- Array of Structures
- Singly Linked List
- Vector
An array of structures would be an efficient approach for storing and processing data about products in a store. This data structure allows you to create a custom data type that contains all the attributes of each product (name, price, quantity), making it easy to manage and process product information efficiently.
In C, using pointers to structures can lead to more efficient memory usage because it allows for ________ allocation and deallocation of memory.
- Dynamic
- Heap
- Stack
- Static
Pointers to structures in C enable dynamic allocation and deallocation of memory, as they can be used to allocate memory on the heap, which is not possible with static memory allocation.
Why is it recommended to use pointer arithmetic instead of array indexing for traversal in some cases?
- It ensures type safety and prevents buffer overflows
- It provides faster traversal and better optimization
- It reduces the risk of pointer errors
- It simplifies code and makes it more readable
Using pointer arithmetic for traversal is recommended in some cases because it can result in faster traversal and better optimization, especially in complex data structures. However, it requires careful handling to avoid pointer errors.
A pointer to a function in C is declared using the syntax ________.
- *func_ptr
- func()ptr
- func_ptr()
- ptr_func
In C, to declare a pointer to a function, you use the syntax "return_type (*pointer_name)(arguments)." This allows you to call a function through the pointer.
Failing to release a memory block with ________ before the program terminates can result in a memory leak.
- calloc()
- free()
- malloc()
- realloc()
Failing to release memory with the "free()" function in C can result in a memory leak, where the allocated memory is not properly deallocated, causing the program to consume more memory than necessary.
Consider a scenario where a program needs to store a character read from a file. Which data type would be appropriate for this?
- char
- double
- float
- int
To store a character read from a file in C, the appropriate data type is 'char' as it can represent individual characters effectively.
In C, function pointers are useful when you want to choose at runtime which ________ to execute.
- Data structure
- Function or behavior
- Memory allocation
- Variable
Function pointers in C allow you to select and call functions dynamically at runtime based on the desired behavior, enhancing the flexibility of your code.
In a C program, you notice that data written to a file is not immediately visible on the disk. What could be a reason for this delay?
- Buffering
- File format mismatch
- File permissions issue
- Insufficient disk space
Buffering is a common reason for a delay in writing data to a file in C. The system may buffer data before writing it to disk for efficiency. This buffering can cause a delay in making the data visible on the disk.
What is the lifetime of a static variable in a C program?
- Limited to the function it's defined in
- Same as the program's runtime
- Until the function exits
- Until the program exits
The lifetime of a static variable in C is the same as the program's runtime. It retains its value between function calls and persists until the program terminates.
Double pointers are often used in C to create a(n) ________ of pointers.
- Array
- Array of Pointers
- List
- Structure
Double pointers in C are often used to create an array of pointers, allowing you to work with multiple pointers efficiently.