Tablica dwuwymiarowa alokowana dynamicznie

Tablica dwuwymiarowa alokowana dynamicznie
R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
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

Kopiuj
#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;
}
tajny_agent
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1340
4

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

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
0

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

tajny_agent
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1340
2

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

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
0

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

Kopiuj
#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;
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
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)

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 157
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..

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.