Версия 1:Как использовать двойной указатель в качестве указательных массивов?
struct mydef_s1 {
int argc;
char *argv[3];
};
struct mydef_s1 *p1 = (struct mydef_s1*) malloc (sizeof (struct mydef_s1));
p1->argv[0] = malloc (8);
p1->argv[1] = malloc (16);
p1->argv[2] = malloc (24);
Now, I want to achieve above with the following structure declaration?
Версия 2:
struct mydef_s2 {
int argc;
char **argv;
};
Если я прав, то следующий хотел бы выделить только 8 байт (4 для указателя памяти & 4 для целого числа в моем машина)
struct mydef_s2 *p2 = (struct mydef_s2*) malloc (sizeof (struct mydef_s2));
Что делает uld Я делаю, чтобы сделать следующее?
p2->argv[0]= malloc(4);
p2->argv[1]=malloc(8);
Вы имели в виду 'p1-> argv [2] = malloc (24);'? –
Похож на ужасную идею. Как вы даже знаете, сколько выделенного блока для каждой записи в массиве? Возможна проблема XY. Чего вы на самом деле хотите достичь? – Olaf