Hozzászólások
Üdvözlet
Tudna valaki segíteni?
Már vagy egy fél napon ráment, de még mindig nem jöttem rá, miért nem működik az alábbi eljárás?
[code:1:391093eb67]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int fill (char ***arr) {
*arr = malloc (sizeof (char *) * 2);
*arr[0] = malloc (sizeof (char) * 20);
strcpy ( *arr[0], "tesztszoveg0");
*arr[1] = malloc (sizeof (char) * 20);
strcpy ( *arr[1], "tesztszoveg1");
return 0;
}
int main ()
{
char **t;
fill (&t);
printf ("%s\n", t[0]);
printf ("%s\n", t[1]);
return 0;
}
[/code:1:391093eb67]
A fill függvény visszatértekor t[0] rendben van, de a t[1] mintha elveszne - NULL értékkel jön vissza.
Így viszont működik:
[code:1:391093eb67]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
char **t;
t = malloc (sizeof (char *) * 2);
t[0] = malloc (sizeof (char) * 20);
strcpy ( t[0], "tesztszoveg0");
printf ("%s\n", t[0]);
t[1] = malloc (sizeof (char) * 20);
strcpy ( t[1], "tesztszoveg1");
printf ("%s\n", t[1]);
return 0;
}
[/code:1:391093eb67]
Csak így éppen nem szép. No meg ha már ennyi időm ráment, mindenképpen szeretném megtudni, hogyan lehet megoldani, hogy a main függvényben csak deklarálódjon a leendő karakterlánc-tömb - amiről előre nem lehet tudni, hány és millyen hosszú sorokból fog állni -, és az összes egyéb műveletet - beleértve a memóriafoglalást - külön függvények végezzenek.
help (&segítség);
if (segítség > 0) {
printf ("köszönöm\n");
}
- A hozzászóláshoz be kell jelentkezni
[quote:3738758897="willothewisp"]
*arr[1] = malloc (sizeof (char) * 20);
*arr[1] != (*arr)[1]
- A hozzászóláshoz be kell jelentkezni
Milyen igaz!
És így tényleg működik.
Köszönöm.
- A hozzászóláshoz be kell jelentkezni