Chapter 1 LabWindows/CVI Compiler
©
National Instruments Corporation 1-11 LabWindows/CVI Programmer Reference Manual
Dynamic Memory Protection Errors
Dynamic memory protection errors report illegal operations with dynamic memory and
corrupted dynamic memory during allocation and deallocation.
Memory Deallocation (Non-Fatal)
LabWindows/CVI generates memory deallocation errors when the pointer is not the result of
a memory allocation. The following user protection errors involve memory deallocation:
Attempt to free uninitialized pointer
Attempt to free pointer to freed memory
Attempt to free invalid pointer expression
Attempt to free pointer not allocated with malloc or calloc
Memory Corruption (Fatal)
LabWindows/CVI generates memory corruption errors when a memory
allocation/deallocation detects corrupted memory. During each dynamic memory operation,
LabWindows/CVI verifies the integrity of the memory blocks it uses in the operation. When
you set the Debugging Level to Extended, LabWindo ws/CVI thoroug hly chec ks all dynamic
memory on each memory operation. LabWindows/CVI generates the following error when it
discovers a problem: Dynamic memory is corrupt.
General Protection Errors
LabWindows/CVI also checks for stack overflow and missing return values:
Stack overflow (fatal)
Missing return value (non-fatal)
The missing return value error means that a non-void function (one you do not declare with
void return type) returned, but did not returned a value.
Library Protection Errors
Library functions sometimes generate errors when they receive invalid arguments.
LabWindows/CVI error checking is sensitive to the requirements of each library function.
The following errors involve library protection:
Null pointer argument to library function
Uninitialized pointer argument to library function
Passing a pointer to freed memory to a library function
Array argument too small
Passing by reference a scalar argument to a library function that expects an array

00ProRef.book : 06chap01.fm Page 11 Monday, March 9, 1998 3:23 PM