Tablica dwuwymiarowa alokowana dynamicznie

0

Cześć, próbuje zrobić tablicę dwuwymiarową która będzie przechowywać 10 słów. Ale nie wiem jak wypełnić taką tablicę która bedzie raczej niesymetryczna

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string.h>

using namespace std;

int main()
{
    srand(time(NULL));

    char** tab = new char*[10];
    char tabb[10];
    int k;
    for (int i = 0; i < 10; i++) {
        cout << "Podaj " << i + 1 << " wyraz" << endl;
    }

    for (int i = 0; i < 10; i++) {
        delete[] tab[i];
    }

    delete[] tab;

    return 0;
}
4

Dlaczego nie vector<string> albo array<string, 10>?

0

Ma być w języku C, tam można używać stringów?

2

Skoro ma być w C to dlaczego otagowałeś jako C++?
I co w Twoim kodzie robi <iostream> i using namespace std? :>

0

Tak.. w C++ mój błąd , przepraszam
Zrobiłem w ten sposób:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string.h>

using namespace std;

int main()
{
    srand(time(NULL));

    char** tab = new char*[10];
    int pmax=0;
    
    for (int i = 0; i < 10; i++)
    {

         tab[i]=new char[50];
    }

    for(int i=0; i<10; i++)
    {
        cout<<"Podaj "<<i+1<<" wyraz"<<endl;
        cin>>tab[i];
        if(strlen(tab[i])>pmax)
        {
            pmax=strlen(tab[i]);
        
        }
         if(strlen(tab[i])==pmax)
         {

         }

    }
    for(int i=0; i<10; i++)
    {
        if(strlen(tab[i])==pmax)
           cout<<"Najdluzszy wyraz: "<<tab[i]<<endl;
    }


    for (int i = 0; i < 10; i++)
    {
        delete[] tab[i];
    }

    delete[] tab;

    return 0;
}
1

Ponawiam pytanie:

tajny_agent napisał(a):

Dlaczego nie vector<string> albo array<string, 10>?

Tak a propos jak potrzebujesz najdłuższy wyraz to wcale nie potrzebujesz żadnych tablic, koszt pamięciowy może być O(1)

0

Tak a propos jak potrzebujesz najdłuższy wyraz to wcale nie potrzebujesz żadnych tablic, koszt pamięciowy może być O(1).

Czyli że robi to jakaś funkcja?
Szczerze mówiąc nie bardzo rozumiem jak tu użyć vector więc zrobiłem tak..

1 użytkowników online, w tym zalogowanych: 0, gości: 1