Makale numarası: 235601 - Son Gözden Geçirme: 06 Eylül 2005 Salı - Gözden geçirme: 3.0

Hata: işlev kaldırmak veya Visual C++ ortam değişkeninde değiştirmek için kullanılan Putenv() işlevi bellek sızıntısına neden olabilir

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Aşağıdaki durumlarda putenv yapılan BIR bellek sızıntısı oluşur:
  • Bir ortam değişkeni kaldırılır.
  • Bir ortam değişkeni değiştirilir.
  • Girdi parametresi bir eşittir (=) karakter içermiyor.

Durum

Microsoft bu durumun, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Bu sorun, Microsoft Visual C++ .NET ile giderilmiştir.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

Aşağıdaki örnek kodu bellek sızıntısına neden olan bir arama türlerini gösterir.

#include <stdlib.h>

void main()
{
    for (;;) {

        putenv( "MYVAR1=mystring" ); // Replaces string MYVAR1
                                     // after first iteration.

        putenv( "MYVAR2=mystring" ); // Creates and removes MYVAR2.
        putenv( "MYVAR2=" );         // 

        putenv( "MYVAR3" );          // Invalid string missing "=".
    }
}
				

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Aboneliği
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Anahtar Kelimeler: 
kbmt kbtshoot kbbug kbcrt kbfix kbnoupdate KB235601 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:235601  (http://support.microsoft.com/kb/235601/en-us/ )