implicitly declaring function 'malloc' with type void *(unsigned long ) 错误 解决

   errror :   implicitly declaring function 'malloc' with type void *(unsigned long )

  1. Be sure to include the correct header file.

    #include <stdlib.h>
    
  2. Casting the return is allowed but frowned upon in C as being unnecessary.

    double* sequence = malloc(...);
    
  3. Consider the follow style as its easier to maintain and IMO, less error prone.

    double* sequence = malloc(numInSeq * sizeof(* sequence));
    
  4. Remember the argument type is size_t may differ in size than int.  size_t is the unsigned integer type of the result of the sizeof operator.

    void *malloc(size_t size);
    
  5. Check the result.

    if (sequence == NULL) Handle_OutOfMemory();
    
  6. Eventually, free the pointer. It is OK to free the pointer even if it has a NULL value.

    free(sequence);
    
  7. If there is a chance sequence will get used agian, best to promptly set its value to NULL.

    free(sequence);
    sequence = NULL;
    
 
posted @ 2016-05-12 14:59  lance.xiang  阅读(2039)  评论(0编辑  收藏  举报