zoukankan      html  css  js  c++  java
  • 内存分配未成功,却使用了它

    内存分配未成功,却使用了它。 编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。

    常用解决办法是, 在使用内存之前检查指针是否为 NULL。

    如果指针 p 是函数的参数,那么在函数的入口 处用 assert(p!=NULL)进行检查。

    如果是用 malloc 或 new 来申请内存,应该用 if(p==NULL) 或 if(p!=NULL)进行防错处理。

     1 #include <iostream>
     2 #include <string.h>
     3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
     4 using namespace std;
     5 int main(int argc, char** argv) {
     6        //拷贝字符串常量到字符数组
     7     char string[80] = "Fill the string with something";
     8     cout<<"string:"<<string<<endl;
     9     cout<<"strcpy:"<<endl;
    10     char *p=strcpy(string,"abc");
    11     cout<<"p     :"<<p<<endl;
    12     cout<<"string:"<<string<<endl;
    13     char str[80];
    14     cout<<"str:";
    15     cin>>str;
    16     p=strcpy(string,str);
    17     cout<<"p     :"<<p<<endl;
    18     cout<<"string:"<<string<<endl;
    19 
    20     //拷贝前5个字符到string中
    21     cout<<"str:";
    22     cin>>str;
    23     cout<<"strncpy:"<<endl;
    24     p=strncpy(string,str,strlen(str));
    25     cout<<"p     :"<<p<<endl;
    26     cout<<"string:"<<string<<endl; 
    27     return 0;
    28 }
  • 相关阅读:
    day19 MRO C3算法 super()
    日志的处理
    day18 约束 异常
    Android-多线程和进程
    Android-多线程Handler
    hdu 1561 树形背包 选k个最大价值
    poj 1947 树形背包 (删边)
    hdu 1011 树形背包
    poj 1155 树形背包
    hdu 3535 (最少1,最多1,任意)(背包混合)(好题)
  • 原文地址:https://www.cnblogs.com/borter/p/9413650.html
Copyright © 2011-2022 走看看