Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Błąd przy własnym programie - MVC++ Runtime Library


Rekomendowane odpowiedzi

Opublikowano

Witam,
W moim niewielkim programie do działaniach na wektorach wyskakuje mi okienko z tytułem MVC++ Runtime Library i treścią błedu : Debug Assertion Failed , Program : ....tcscpy_s.inl "\n" Line 30 "\n" Expression (L"Buffer is too small) && 0.. Miał ktoś kiedys taki problem? Bład wyskakuje przy instrukcjach przeciążonych operatorów + oraz - w instrukcji wektory[0]+wektory[1]; gdy nie ma tej instrukcji wszystko jest ok... Ma ktoś jakieś rozwiązanie/podpowiedź?

Opublikowano

daj kod, bo prawdopodobnie

Przeciążony operator :


Vec Vec::operator - (const Vec& v)
{
	Vec r;		
	
	int ile;								
	if(n > v.n) 
	{ 
		r.n = n; 
		ile = v.n; 
	}		// przypisanie liczby elementow do wektora bedacego roznica
	else 
	{ 
		r.n = v.n; 
		ile = n; 
	} 
	r.A = new double[r.n];
	for(int i=0; i<r.n; i++)				// odejmowanie odpowiednich elementow
	{
		if(i <= ile) r.A[i] = A[i] - v.A[i];
		else 
		{
			if(r.n == this->n) 
				r.A[i] = A[i];
			else			  
				r.A[i] = -v.A[i];
		}
	}
	Vec* wynik = new Vec("R", r.n, r.A);
	return *wynik;
}

 

polecenie:

 

if(roznica)	{							
		Vec odjac;
		odjac=wektory[0];
		for(int i=0;i<ile-1;i++){

			odjac=(odjac-wektory[i]);
			
		}
		odjac.nazwa("R");
		zapis<<"Różnica wynosi : "<< odjac;
	}

 

 

Opublikowano
if(i <= ile) r.A[i] = A[i] - v.A[i];
 

wydaje mi się, że tutaj powinno być

 

if(i < ile) r.A[i] = A[i] - v.A[i];
 

btw. nazywaj jakoś normalnie te zmienne

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...