zoukankan      html  css  js  c++  java
  • 野指针和内存操作实例

    1.#include <stdio.h>
    #include <malloc.h>

    void f(int* p, int size)
    {
        int i = 0;
        
        for(i=0; i<size; i++)
        {
            printf("%d ", p[i]);
        }
        
        free(p);
    }

    int main()
    {
        int* p = (int*)malloc(5 * sizeof(int));
        int i = 0;
        
        f(p, 5);
        
        for(i=0; i<5; i++)
        {
            p[i] = i; // OOPS!
        }
           
        return 0;
    }

    2.#include <stdio.h>
    #include <malloc.h>

    void f(int* p, int size)
    {
        int i = 0;
        
        for(i=0; i<size; i++)
        {
            p[i] = i;
            printf("%d ", p[i]);
        }
        
        free(p);
    }

    int main()
    {
        int* p = (int*)malloc(5 * sizeof(int));
        
        f(p, 5);
        
        free(p); // OOPS!
           
        return 0;
    }

    3.#include <stdio.h>
    #include <malloc.h>

    void f(unsigned int size)
    {
        int* p = (int*)malloc(size*sizeof(int));
        int i = 0;
        
        if( size % 2 != 0 )
        {
            return; // OOPS!
        }
        
        for(i=0; i<size; i++)
        {
            p[i] = i;
            printf("%d ", p[i]);
        }
        
        free(p);
    }

    int main()
    {
        f(9);
        f(10);
           
        return 0;
    }
    4.#include <stdio.h>

    void f(int a[10])
    {
        int i = 0;
        
        for(i=0; i<10; i++)
        {
            a[i] = i; // OOPS!
            printf("%d ", a[i]);
        }
    }

    int main()
    {
        int a[5];
        
        f(a);
           
        return 0;
    }


  • 相关阅读:
    说实话,mycat就是垃圾,不再更新
    深入理解并发/并行,阻塞/非阻塞,同步/异步
    转载:PHP 协程实现
    转载:异步、并发、协程原理
    第四章总结
    第三节 需要异常
    [第四章] 测试依赖性和异常
    第三章总结
    第三节 MVC应用程序架构和测试
    第二节 PHPUnit测试的剖析
  • 原文地址:https://www.cnblogs.com/wxb20/p/6163260.html
Copyright © 2011-2022 走看看