程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++中動態內存分配引發問題的解決方案

C++中動態內存分配引發問題的解決方案

編輯:C++入門知識
  假設我們要開發一個String類,它可以方便地處理字符串數據。我們可以在類中聲明一個數組,考慮到有時候字符串極長,我們可以把數組大小設為200,但一般的情況下又不需要這麼多的空間,這樣是浪費了內存。對了,我們可以使用new操作符,這樣是十分靈活的,但在類中就會出現許多意想不到的問題,本文就是針對這一現象而寫的。現在,我們先來開發一個Wrong類,從名稱上看出,它是一個不完善的類。的確,我們要刻意地使它出現各種各樣的問題,這樣才好對症下藥。好了,我們開始吧!
  
  Wrong.h:
  
   #ifndef WRONG_H_
  #define WRONG_H_
  class Wrong
  {
  private:
  char * str; //存儲數據
  int len; //字符串長度
  
  public:
  Wrong(const char * s); //構造函數
  Wrong(); // 默認構造函數
  ~Wrong(); // 析構函數
  friend ostream & operator<<(ostream & os,const Wrong& st);
  };
  #endif
  
  Wrong.cpp:
  
  #include <iostream>
  #include <cstring>
  #include "wrong.h"
  using namespace std;
  Wrong::Wrong(const char * s)
  {
  len = strlen(s);
  str = new char[len + 1];
  strcpy(str, s);
  
  }//拷貝數據
  
  Wrong::Wrong()
  {
  len =0;
  str = new char[len+1];
  str[0]='
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved