:D no jo vlastně... Díky za pomoc, už jsem z těch ukazatelů zmagořenej :)
Příspěvky odeslané z IP adresy 92.62.224.–
Díky, (*pole)[i] je přesně ta chyba :)
Já více méně testuju, co c++ umí. Teprve s tím začínám.
Mám funkci main, tam si nadefinuju dynamicke pole a pak volam dalsi funkci, ktera v pripade, ze je pole maly, tak ho udela vetsim a vlozi do nove vytvoreny pameti hodnotu. Mno a pokud chci, aby tam ta hodnota zustala a nesmazala se mi pri skonceni fce, tak musim zapisovat jakoby o uroven vys. Proto ty dva pointery. Jeden ukazuje do dynamickeho pole v mainu a druhy ukazuje na dynamicke pole. Proto tam mam dva ukazatele.
vypis(pocetPrvkuVPoli, &dynamicke_pole);
void(int pocet, int** pole)
{
for(int i = 0; i < pocet;i++)
cout << *pole[i] << endl;
}
pole[0]0x3e0fb8
pole[1]0x3e0fbc
<- před zvětšením pole
pole[0]0x3e1030
pole[1]0x3e1034
<- vytvoření a zápis do nového pole
pole[0]0x3e1030
pole[1]0x413540
<- pole[1] ve funkci vypis(pocetPrvkuVPoli, &dynamicke_pole);
ukazuje nesmyslně (nebo spíš smyslně, jenom nevím proč :D) někam do háje.
Mimo funkci vypis, pole funguje dobre a prvky vypisuje... Neni mi jen jasne, proc si skace nekam po pameti jak chce :)
Nabízím tvorbu mobilních aplikací pro Android a iOS. Nabízím spolehlivý přístup a letité zkušenosti.
Pro více informací mě prosím kontaktujte na emailu: info@hedmon.cz
Budu se těšit na spolupráci.
Dobrý den,
hledám zkušené programátory pro Drupal, WordPress, Prestashop a Joomla. Požaduji znalosti ve tvorbě webů a také kódování šablon pro tyto systémy.
Prosím, aby se mi ozývali ti, kteří mají zkušenosti alespoň v jednom z těchto systémů a aby uvedli, o který systém se jedná a prosím také o přiložení referencí a několika informací o Vás a Vašich zkušenostech.
V případě spokojenosti, možnost dlouhodobé spolupráce.
Děkuji předem za všechny nabídky, odpovím pouze vybraným zájemcům.
#2 zlz
Vůbec nemám páru jak... Potřebuju to nějak číslovat, abych mohl přidávat další slova pod nějakým ID, proto se dlabu v poli. :/
Sorry asi jsem moc lama, ale docela mi dochází čas. Nemáte nějaký tip jak to předělat v tomhle smyslu polí, aby ukazatele ukazovaly kam mají?
Dobrý den,
v C už nějaký čas amatérsky dělám, ale teď jsem se na dost hodin sekl na jednom problému.
Dělám úplně stupidní slovníček... Nějak jsem se to snažil splácat, ale zasek jsem se na tom, že když přidám slovo, tak se sice přidá, ale jakmile přidám jiné nové, tak se přepíše i to předešlé, co jsem přidal. Prosím o radu, díky. :/
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <vector>
using namespace std;
void options(void);
void print_dictionary(void);
char *add_word(void);
void find_word(void);
char *dictionary[100];
char cz[15];
char en[15];
czech[0] = "kocka";english[0] = "cat";
czech[1] = "pes";english[1] = "dog";
czech[2] = "kachna";english[2] = "duck";
std::vector<char*> czech(100);
std::vector<char*> english(100);
int main()
{
dictionary[0] = "auto";
dictionary[1] = "kachna";
dictionary[2] = "zidle";
while(1)
{
options();
}
}
void options(void)
{
int i;
cout << "1. Hledat slovo" << endl;
cout << "2. Vypsat ulozena slova" << endl;
cout << "3. Pridat slovo do slovniku" << endl;
cout << "4. Odebrat slovo ze slovniku" << endl;
cout << "5. Ukoncit program" << endl << endl;
cout << "Zadejte volbu: ";
cin >> i;
cout << endl;
switch (i) {
case 1:
/* 1. Hledat slovo */
find_word();
break;
case 2:
/* 2. Vypsat ulozena slova */
print_dictionary();
break;
case 3:
/* 3. Pridat slovo do slovniku */
add_word();
break;
case 4:
/* 4. Odebrat slovo ze slovniku */
break;
default:
/* 5. Ukoncit program */
system("CLS");
break;
}
}
void print_dictionary(void)
{
/* Cyklus zjistujici nejblizsi volnou pozici */
for (int empty_position = 0; czech[empty_position] != 0; empty_position++) {
//////////////// !!!!!!!!!!!!!!!!!!!!!!!! <- jakmile nejaky smazes, tak jsem v riti :D
cout << czech[empty_position] << "\t\t\t" << english[empty_position] << endl;
}
}
char * add_word()
{
int empty_position;
// Cyklus zjistujici nejblizsi volnou pozici //
for (empty_position = 0; czech[empty_position] != 0; empty_position++);
cout << empty_position << endl;
cout << "Zadejte ceske slovo: " << endl;
cin >> cz;
czech[empty_position] = cz;
cout << "Zadejte anglicke slovo: " << endl;
cin >> en;
english[empty_position] = en;
for (int empty_position = 0; czech[empty_position] != 0; empty_position++) {
//////////////// !!!!!!!!!!!!!!!!!!!!!!!! <- jakmile nejaky smazes, tak jsi v riti :D
cout << empty_position << "\t" << czech[empty_position] << "\t\t\t" << english[empty_position] << endl;
}
}
void find_word(void)
{
char word[15];
int condition = 0;
cout << "Zadejte slovo, ktere chcete hledat:" << endl;
cin >> word;
for(int i = 0;strcmp(word, dictionary[i]) == 0; i++)
{
cout << "Anglicky preklad slova " << word << " je: " << dictionary[i] << endl << endl;
condition = 1;
}
for(int j = 0;strcmp(word, dictionary[j]) == 0; j++)
{
cout << "Cesky preklad slova " << word << " je: " << dictionary[j] << endl << endl;
condition = 1;
}
if(condition == 0)
{
cout << "Zadane slovo slovnik nezna" << endl << endl;
}
}