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

时间:2016-05-13 10:06:47   收藏:0   阅读:1541

   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;
    
 

原文:http://www.cnblogs.com/lan1x/p/5485705.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!