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.
While reviewing a C program, you come across a scenario where a pointer is freed but later used in the program. What issue could this lead to?
- Buffer Overflow
- Memory Leak
- Null Pointer Exception
- Stack Overflow
Attempting to use a pointer after it has been freed can result in a null pointer exception, causing the program to crash or behave unpredictably.
You are developing a log monitoring tool that needs to constantly read a log file and process new entries. What approach would you take to efficiently read the file?
- Employ multi-threading to parallelize log file reading.
- Periodically restart the application to clear the file buffer.
- Use a polling mechanism to check for file changes.
- Use a single-threaded approach to read the file sequentially.
Efficient log file reading often involves multi-threading to process entries concurrently, leading to better performance.
You're developing a program that needs to frequently update specific records in a large binary file. Which file handling functions would be most useful to efficiently locate and update records?
- fseek() and fwrite()
- fread() and ftell()
- fprintf() and fscanf()
- fgetc() and fputc()
To efficiently locate and update records in a binary file, you would use fseek() to move to the desired position and fwrite() to write the updated data. The other options are not suitable for this specific task.
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.