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 }
  • 相关阅读:
    WebContent的子目录里面的jsp文件无法将数据传递给Servlet
    MVC 与 三层架构
    使用命令行操作MySQL 及 语法
    JDBC
    字符典
    servlet 生命周期
    6 shell内置命令
    5shell中的数组
    4shell中的特殊变量
    3shell命令替换
  • 原文地址:https://www.cnblogs.com/borter/p/9413650.html
Copyright © 2011-2022 走看看