realloc массив структуры в c [дубликат]

Я думаю, что это лучше справится с этим:

my_dict = {0: "c", 1: "d", 2: "e", 3: "f"}

def validate(x, y, z):
    for ele in [x, y, z]:
        if ele in my_dict.keys():
            return my_dict[ele]

Выход:

print validate(0, 8, 9)
c
print validate(9, 8, 9)
None
print validate(9, 8, 2)
e
10
задан Bo Persson 19 October 2015 в 17:09
поделиться

2 ответа

Вам нужно настроить указатель *, это означает, что вам нужно передать указатель на * a. Вы делаете это так:

int *a;

void initArray( int **arr )
{
    *arr = malloc( sizeof( int )  * SIZE );
}

int main()
{
    initArray( &a );
    return 0;
}
20
ответ дан Michael Anderson 25 August 2018 в 06:23
поделиться

Вы присваиваете значение arr внутри initArray, поэтому любое изменение значения arr будет невидимым для внешнего мира. Вы должны передать arr указателем:

void initArray(int** arr) {
  // perform null-check, etc.
  *arr = malloc(SIZE*sizeof(int));
}
...
initArray(&a);
5
ответ дан kennytm 25 August 2018 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: