Korte C vraag.

Status
Niet open voor verdere reacties.

Jori13

Gebruiker
Lid geworden
18 jan 2010
Berichten
159
Hoi,

Korte vraag,

Ik heb de code:

[CPP]char **funcargarr;
char *temp_arg;

/* Reverse space */
funcargarr = (char **) calloc(MAX_FUNC_ARGS * MAX_ARG_LEN, sizeof(char));
temp_arg = calloc(MAX_ARG_LEN, sizeof(char));

strcpy(funcargarr[0], temp_arg);
[/CPP]

Waarom loopt hij vast bij deze handeling?


Alvast bedankt,
Jori.
 
funcargarr is een pointer naar een array van pointers.
Je zou dus eerst genoeg geheugen moeten alloceren voor die array (MAX_FUNC_ARGS pointers), en vervolgens met een for-lus voor al die pointers nog geheugen alloceren (MAX_ARG_LEN).

Iets in deze richting:
Code:
funcargarr = (char**) calloc(MAX_FUNC_ARGS, sizeof(char*));
for (i = 0; i < MAX_FUNC_ARGS; ++i) {
    funcargarr[i] = (char*) calloc(MAX_ARG_LEN, sizeof(char));
}

En ik denk dat je /* Reverse space */ in /* Reserve space */ wil veranderen :).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan