Diskuze: Naplnění 2d dynamického pole hodnotama C
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, mas tam chybu v pretypovani u alokace pameti pro jednotlive sloupce a taky mas chybu v dealokaci pameti - dealokujes pouze pamet pro radky a pro sloupce ne. Takhle by to melo byt spravne:
#include <stdio.h>
#include <stdlib.h>
int AlokacePameti(int*** pole, int radky, int sloupce);
int main ()
{
int i;
int j;
int ** pole;
int radky;
int sloupce;
printf("Zadej pocet radku matice A: ");
scanf("%d", &radky);
printf("\nZadej pocet sloupcu matice A: ");
scanf("%d", &sloupce);
AlokacePameti(&pole, radky, sloupce);
printf("Zadejte hodnoty v matici: \n");
for (i = 0; i < radky; i++)
{
for (j = 0; j < sloupce; j++)
{
scanf("%d", &pole[i][j]);
}
}
printf("Matice A je: %d * %d\n", radky, sloupce);
for(i = 0; i<radky; i++)
{
for(j = 0; j < sloupce; j++)
printf("%d ", pole[i][j]);
printf("\n");
}
for (i = 0; i < radky; i++) {
free(pole[i]);
}
free(pole); //every c/malloc need a free
return 0;
}
int AlokacePameti(int *** pole, int radky, int sloupce){
int i;
*pole = (int**)malloc( sizeof(int *) * radky);
if (*pole == NULL){
printf("ERROR: out of memory\n");
return 1;
}
for (i=0;i<radky;i++){
(*pole)[i] = (int*)malloc( sizeof(int) * sloupce);
if ((*pole)[i] == NULL){
printf("ERROR: out of memory\n");
return 1;
}
}
printf("Allocated!\n");
return 0;
}
1 ) Používej code (viz obrázek)
2 ) alokace a dealokace (viz Artas)
3 )
AlokacePameti(&pole, radky, sloupce);
Proč posíláš další pointer? Není lepší to poslat přímo?
Když to pošle přímo, tak jakoukoliv paměť přiřadí tomu pointeru v parametru a ten pointer který je deklarován v main se nezmění a bude pořád ukazovat na nějakou "náhodnou" adresu.
Aj :[ , já na vrácení hodnoty používám return, tak nějak jsem si to neuvědomil.
Zobrazeno 6 zpráv z 6.