Ipari zen

Szak-irodalom. A fejlesztő jajszava haikuban. A technika ördöge avagy a lelketlen vasban a mélyen emberi.

A szoftverfejlesztés művészete és a zen

2010.01.03. 15:11 Ipari zen

Null pointer exception

Címkék: copy pointer constructor null exception smart pointer

Kincs ami nincs a
longint, ha pointered
semmibe mutat.

Egy nagy C++ modulban a memóriahatékonyság miatt pointereket is szép számmal tartalmazó kisebb objektumot küldözgettünk át egy csomó feldolgozó osztályon. Közben persze elkövettük az ilyenkor lehetséges összes hibát:

  • megjegyeztük a stacken létrehozott változó címét
  • nem készítettünk a copy konstruktort az osztályhoz, aztán mégis másolgattuk az objetumokat
  • nem inicializáltuk a pointereket, aztán használtuk őket
  • tesztelés nélkül használtuk a null-pointereket éles bevetésen

és még számtalan egyebet is, mert ugye végtelen a pointerekkel összefüggő hibák tárháza. Mikor már elviselhetetlenné nőttek a karbantartási költségek egy nagyobb lélegzetvételű újraírás következett. Hosszabb tanakodás után persze egy referenciaszámláláson alapuló smart-pointer rendszer lett a befutó és azóta is szolgál mindenki megelégedésére. Messze behozta már a ráfordított költségeket.

2 komment

A bejegyzés trackback címe:

https://ipari-zen.blog.hu/api/trackback/id/tr541641925

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Sopánka76 2010.01.04. 15:58:08

Jó ez a blog!
Kéne még bele némi kódrészlet, illusztráció végett!

Ipari zen · http://ipari-zen.blog.hu 2010.01.04. 16:04:38

@Sopánka76: Úgy terveztem, hogy lesz majd az is, de egyelőre csak ennyire futotta az időmből. Lehet, hogy majd még csiszolgatok rajta. Pillanatnyilag van még néhány fejlesztéstől független projektem, azokat is szeretném párhuzamosan folytatni.
süti beállítások módosítása