* Ефективно съхраняване на низове в паметта

Да се напише програма с функция, която позволява да се въведе низ от клавиатурата и след това го съхранява в динамична променлива, така че да не се изразходва ненужно дори един байт. Да се демонстрира функцията чрез въвеждане на 3 низа и отпечатването им.

Публикувано в 12в с етикети . Постоянна връзка.

2 коментара по * Ефективно съхраняване на низове в паметта

  1. kaloyan каза:
    #include <cstdlib>
    #include <iostream>
      
    using namespace std;
    
    //Функция, на която подаваме променливата, в която записваме низа
    void str(char &str){
    	cout<<"Vavedi niz: ";
    	cin>>&str;
    }
    
    int main(int argc, char** argv) {
    	//Създаваме 3 динамични променливи
    	char *str1 = new char;
    	char *str2 = new char;
    	char *str3 = new char;
    	
    	str(*str1);
    	str(*str2);
    	str(*str3);
    	
    	cout<<str1<<endl;
    	cout<<str2<<endl;
    	cout<<str3<<endl;
    	
    	//Изтриваме динамичните променливи
    	delete str1;
    	delete str2;
    	delete str3;
    	
    	return 0;
    }
    • Данаил каза:

      Не съм съгласен с решението – обърни внимание, че ти заделяш памет само за един символ, а в толкова можеш да побереш само празен низ. При така написаната програма записът на всеки низ ще прецаква всички променливи и данни, намиращи се в следващите адреси на паметта, освен ако компилаторът не се „усеща“ че за низа е нужна повече памет и да се грижи сам да резервира такава. Правилното решение е да резервираш динамичната променлива СЛЕД като вече знаеш колко памет ти трябва за нея.

Вашият коментар